Có cách nào để tắt Google Maps vĩnh viễn cho đến khi cần không?


24

Bản đồ của Google dường như có một lượng Ý định điên rồ được đăng ký cho nó, cũng như các cách khác để bắt đầu.

Vì đây là một ứng dụng khá tài nguyên (đặc biệt là bộ nhớ), tôi rất muốn nó vĩnh viễn không chạy trừ khi / cho đến khi tôi thực sự cần nó. Tuy nhiên, Android luôn khởi động mọi lúc - ví dụ: khi trạng thái kết nối thay đổi (đối với tôi xảy ra khá thường xuyên trong nhà) hoặc GPS / vị trí mạng thay đổi.

Có cách nào để đảm bảo rằng Google Maps không bắt đầu BẤT K process quy trình nào, được bảo đảm cho đến khi tôi nhấp vào biểu tượng để cố tình khởi chạy nó không?

Môi trường : Droid X, chạy chứng khoán gốc Froyo 2.2; Tôi có Autostarts . và Advanced Task Killer, cũng như phiên bản Pro của Titanium Backup được cài đặt.

Tôi khá cởi mở với hầu hết mọi phương pháp miễn là

  • Nó đáng tin cậy.

  • Nó cho phép tôi sử dụng Google Maps với chức năng dự định 100% sau khi tôi cần, mà không cần 5 phút làm việc để định cấu hình lại.

  • Lý tưởng nhất là không yêu cầu tôi khởi động lại để sử dụng nó, nhưng cái này không phải là một kẻ giết người thỏa thuận.

  • Tôi thực sự thích một phương pháp chung có thể áp dụng cho các ứng dụng khác, KHÔNG chỉ Google Maps.

  • Tôi là một nhà phát triển phần mềm với kinh nghiệm quản trị hệ thống Unix / Linux khổng lồ. Nói cách khác, các giải pháp yêu cầu shell prompt hoặc viết / chạy các kịch bản shell (hoặc Perl trong Môi trường tập lệnh Android) rất được hoan nghênh.

    Các giải pháp liên quan đến việc viết ứng dụng Java Android của riêng tôi có thể được chấp nhận miễn là chúng đủ chi tiết so với toàn bộ người mới phát triển Android có thể hoàn thành ít nhất một số công việc mà không bị mất 100%.

Những điều tôi đã thử:

  • Giết chết các quy trình thông qua Task Killer KHÔNG hoạt động - chúng sẽ quay trở lại, ngay lập tức hoặc trong một thời gian ngắn. Có thể thông qua Ý định nhưng không chắc chắn 100%.

  • Các phương pháp tiêu chuẩn để loại bỏ các sự cố GMaps (đăng xuất khỏi Latitude / tắt GPS và trình định vị mạng). Điều này có vẻ giúp ích rất nhiều NHƯNG tôi thấy cần phải tắt GPS / bộ định vị vĩnh viễn là không thể chấp nhận được - ví dụ: nó sẽ không cho phép tôi chạy ứng dụng Locale hoặc những thứ của Tasker dựa trên ngôn ngữ.

  • Đóng băng thông qua Titanium Backup Pro. Điều này đòi hỏi phải khởi động lại và thường không dễ chịu cho lắm.

Những cách tiếp cận có thể tôi nghĩ đến (nhưng không biết phải làm thế nào) là:

  • Bằng cách nào đó HOÀN TOÀN loại bỏ (tắt) tất cả các Ý định được đăng ký bởi Google Maps khi không cần thiết.

    Vấn đề: Đầu tiên, tôi không biết TẤT CẢ Ý định mà Google Maps sử dụng.

    Thứ hai, cách thực tế duy nhất mà tôi biết là ứng dụng Autostarts KHÔNG phải là một giải pháp khả thi - phải mất ~ 5-10 phút để tìm và kích hoạt lại tất cả các ý định mà tôi biết (Autostarts thực sự kém -Quản lý mục đích ứng dụng - nó tập trung vào ý định), đừng bận tâm đến những ý định có thể mà Autostarts KHÔNG biết (đó là một hộp đen, tôi không biết ý định nào bị bỏ qua nếu có.

  • Có một tập lệnh sẽ đổi tên JAR hoặc bất kỳ tập tin thực thi nào trên Android (toàn bộ .APK?) Từ nói GoogleMaps.apkđến GoogleMaps.disabled.apkvà quay lại.

    Vấn đề: Tôi không biết nếu điều này có thể thực hiện trên một Froyo đã root. Ngoài ra, Google Maps đã được cài đặt sẵn trên DroidX, vì vậy việc đổi tên bằng cách nào đó CHỈ ảnh hưởng đến bản cập nhật nhưng không phải là ứng dụng gốc?

  • Có một tập lệnh sẽ đi vào APK và đổi tên / di chuyển / làm trống tệp kê khai để xóa bất kỳ ý định nào cho ứng dụng đó.

    Vấn đề: Điều này sẽ yêu cầu biên dịch lại? Nó chắc chắn đòi hỏi phải khởi động lại, đó là một điểm trừ


2
Xin lưu ý rằng tôi đang hỏi "Có cách nào để tắt Google Maps vĩnh viễn cho đến khi cần không?". Tôi không hỏi "Tôi có cần dừng Google Maps vĩnh viễn bắt đầu không?" Hoặc "Cách giải quyết để tiếp tục chạy GMaps mà vẫn giữ được thời lượng pin tốt".
DVK

"Đóng băng thông qua Titanium Backup Pro. Điều này đòi hỏi phải khởi động lại và thường không dễ chịu lắm." Nó thật thú vị. Liệu nó có làm điều đó cho tất cả các ứng dụng hay chỉ một thứ gì đó được nhúng nhiều hơn, như Maps?
Cơ hội

@Chance - Ấn tượng của tôi là nó dành cho tất cả các ứng dụng.
DVK

3
Bạn đã thực sự thử nó chưa? Tôi đã sử dụng Ti-Bu để đóng băng các ứng dụng trước đây và tôi không phải khởi động lại.
Cơ hội

@Chance - Các ứng dụng của tôi bị đóng băng đã không ngừng sinh sản vào bộ nhớ cho đến khi tôi khởi động lại. Có thể tôi đã làm sai - tôi chỉ mới bắt đầu sử dụng TBPro gần đây.
DVK

Câu trả lời:


5

Từ việc bạn đề cập đến Titanium Backup, tôi cho rằng thiết bị của bạn đã được root. Vì vậy, khuyến nghị tuyệt đối của tôi ở đây là AutoRun Manager (và vâng, bạn sẽ cần Pro - thứ hai có, nó đáng giá). Cài đặt xong, mở ứng dụng, sử dụng "chế độ nâng cao", tìm ứng dụng bạn muốn sửa đổi (trong trường hợp của bạn: Google Maps). Mở rộng nó. ARM sẽ cho bạn thấy tất cả người nghe của nó - vô hiệu hóa chúng.

Đó là nó. Không có gì là đánh thức nó nữa trừ khi bạn rõ ràng bắt đầu nó. NHƯNG: Trước khi bạn khởi động nó, bạn có thể cần phải kích hoạt lại những người nghe đó hoặc bạn có thể gặp các tác dụng phụ lạ (tôi đã làm). Mặt khác, ít nhất điều này không yêu cầu khởi động lại.

Để biết chi tiết kỹ thuật, bạn có thể muốn kiểm tra chéo với câu hỏi Làm cách nào tôi có thể quản lý các liên kết ý định với ứng dụng hoặc trực tiếp đi sâu vào phần Ý định trong hướng dẫn sử dụng của nhà phát triển AOSP .


16

Đầu tiên, tôi khuyên bạn nên ngừng sử dụng sát thủ nhiệm vụ của mình . Họ đang làm cạn kiệt pin của bạn hơn là tiết kiệm pin. Hệ thống đang khởi động lại các dịch vụ khi chúng cần chạy, điều này gây ra việc sử dụng pin.

Thứ hai, bạn theo giả định rằng giải phóng bộ nhớ là một điều tốt. Không phải vậy. Giải phóng bộ nhớ sẽ không làm giảm việc sử dụng pin. Những gì bạn thực sự cần tìm là các ứng dụng sử dụng nhiều chu kỳ CPU. Đây là những gì sẽ tiêu hao pin của bạn.

Android dựa trên Linux. Linux luôn muốn sử dụng tất cả bộ nhớ có sẵn vì bộ nhớ trống bị lãng phí bộ nhớ. Hệ thống Android sẽ đảm nhiệm việc giải phóng bộ nhớ cho các ứng dụng không được sử dụng để các ứng dụng khác có thể sử dụng nó khi cần.

Ngay cả khi bạn thử và tắt các ứng dụng đang chạy và chiếm bộ nhớ, hệ thống sẽ khởi động lại các dịch vụ / ứng dụng này, điều này sẽ gây hao pin vì chúng có thể có một số đồng bộ hóa xảy ra khi khởi động hoặc chỉ sử dụng chu kỳ CPU để khởi tạo ứng dụng. Giết các ứng dụng cũng sẽ khiến thiết bị xuất hiện chậm khi cố gắng khởi động ứng dụng vì thứ gì đó thông thường có thể đang chạy bây giờ cần được khởi động lại trước khi đưa cho bạn giao diện người dùng ứng dụng.

Một số thứ sẽ gây hao pin như GPS, wifi, bluetooth và việc sử dụng dữ liệu sẽ sử dụng CPU của bạn nhiều hơn nữa để xử lý dữ liệu được truyền và nhận. Tắt những thứ này khi không sử dụng sẽ tiết kiệm rất nhiều pin. Tôi có một pin xấu trong thiết bị của mình, nó thậm chí không sạc được 94%, nhưng tôi có thể hết pin 12 giờ hoặc hơn nếu tôi tắt các dịch vụ này khi tôi không cần chúng.

Tôi sử dụng google maps mọi lúc và trong thống kê pin của tôi, nó thậm chí không được liệt kê là một ứng dụng sử dụng tài nguyên. Người dùng pin cao nhất của tôi là Màn hình @ 31% và mức thấp nhất được hiển thị là GMail @ 3%. Tôi có thể đảm bảo với bạn, google maps không phải là nguyên nhân gây hao pin của bạn. Sử dụng sát thủ nhiệm vụ có nhiều khả năng là nguyên nhân. Như tôi đã nói, tôi sử dụng google maps cho chỉ đường gần như hàng ngày và thậm chí nó không nằm trong danh sách 10 ứng dụng hàng đầu đang sử dụng pin của tôi.

Thông tin thêm về kẻ giết người nhiệm vụ từ blog Nhà phát triển Android của Google .

Một sự hiểu lầm phổ biến về đa nhiệm Android là sự khác biệt giữa một quy trình và ứng dụng. Trong Android, đây không phải là các thực thể được liên kết chặt chẽ: các ứng dụng dường như có thể xuất hiện cho người dùng mà không có một quy trình thực tế hiện đang chạy ứng dụng; nhiều ứng dụng có thể chia sẻ các quy trình hoặc một ứng dụng có thể sử dụng nhiều quy trình tùy theo nhu cầu của nó; quá trình của một ứng dụng có thể được Android giữ lại ngay cả khi ứng dụng đó không tích cực làm gì đó.

Việc bạn có thể thấy quá trình "chạy" của ứng dụng không có nghĩa là ứng dụng đang chạy hoặc làm bất cứ điều gì. Nó có thể đơn giản là ở đó bởi vì Android cần nó vào một lúc nào đó, và đã quyết định rằng tốt nhất là giữ nó xung quanh trong trường hợp nó cần lại. Tương tự như vậy, bạn có thể rời khỏi một ứng dụng một chút và quay lại ứng dụng đó từ nơi bạn rời đi, và trong thời gian đó, Android có thể cần phải thoát khỏi quy trình cho những thứ khác.

Chìa khóa cho cách Android xử lý các ứng dụng theo cách này là các quy trình không tắt hoàn toàn. Khi người dùng rời khỏi một ứng dụng, quy trình của nó được giữ xung quanh trong nền, cho phép ứng dụng tiếp tục hoạt động (ví dụ như tải xuống các trang web) nếu cần và ngay lập tức trở lại nền trước nếu người dùng quay lại. Nếu một thiết bị không bao giờ hết bộ nhớ, thì Android sẽ giữ tất cả các quy trình này xung quanh, thực sự khiến tất cả các ứng dụng "chạy" mọi lúc.

Tất nhiên, có một lượng bộ nhớ hạn chế và để phù hợp với Android này phải quyết định khi nào cần loại bỏ các quy trình không cần thiết. Điều này dẫn đến vòng đời quy trình của Android, các quy tắc mà nó sử dụng để quyết định tầm quan trọng của mỗi quy trình và do đó, quy trình tiếp theo nên được loại bỏ. Các quy tắc này dựa trên cả tầm quan trọng của một quy trình đối với trải nghiệm hiện tại của người dùng, cũng như thời gian tồn tại kể từ khi quá trình này được người dùng cần đến lần cuối.

Một khi Android xác định rằng nó cần phải loại bỏ một quá trình, nó sẽ thực hiện việc này một cách tàn nhẫn, đơn giản là giết chết nó. Sau đó, hạt nhân có thể lấy lại ngay lập tức tất cả các tài nguyên cần thiết cho quá trình, mà không cần dựa vào ứng dụng đó được viết tốt và đáp ứng yêu cầu lịch sự để thoát. Việc cho phép kernel lấy lại ngay lập tức các tài nguyên ứng dụng giúp việc tránh các tình huống bộ nhớ trở nên dễ dàng hơn rất nhiều.

Nếu sau đó người dùng quay lại ứng dụng đã bị giết, Android cần một cách để khởi chạy lại ứng dụng đó ở trạng thái như lần trước, để duy trì trải nghiệm "tất cả các ứng dụng đang chạy mọi lúc". Điều này được thực hiện bằng cách theo dõi các phần của ứng dụng mà người dùng biết (Hoạt động) và khởi động lại chúng với thông tin về trạng thái cuối cùng mà chúng được nhìn thấy. Trạng thái cuối cùng này được tạo ra mỗi khi người dùng rời khỏi phần đó của ứng dụng, không phải khi nó bị giết, để hạt nhân sau đó có thể tự do giết nó mà không phụ thuộc vào ứng dụng để trả lời chính xác tại thời điểm đó.

Theo một số cách, quản lý quy trình của Android có thể được coi là một dạng không gian hoán đổi: các quy trình ứng dụng đại diện cho một lượng bộ nhớ sử dụng nhất định; khi bộ nhớ thấp, một số quá trình có thể bị giết (tráo đổi); khi các quy trình đó là cần thiết một lần nữa, chúng có thể được bắt đầu lại từ trạng thái lưu cuối cùng của chúng (hoán đổi).

Đây là một bài viết khác nói về cách những kẻ giết người nhiệm vụ sẽ tiêu hao pin của bạn.

Không sử dụng Phần mềm giết chết tác vụ tự động
Để rút gọn câu chuyện dài, sử dụng trình diệt tác vụ tự động có thể gây ra: hao pin quá mức (như thể điện thoại không tiêu hao pin đủ nhanh), điện thoại thường xuyên bị quá nóng và tắt chương trình (gặp sự cố) ngẫu nhiên - các chương trình bạn thực sự muốn sử dụng. Tránh xa những thứ này!

Một điều mà bạn có thể làm nếu bạn thực sự được thiết lập "dừng bản đồ" cho đến khi bạn muốn sử dụng nó là sử dụng tùy chọn Freeze trong sao lưu titan. Điều này về cơ bản sẽ xóa ứng dụng khỏi thiết bị và không có dịch vụ nào được liên kết với nó sẽ bắt đầu cho đến khi bạn hủy đóng băng ứng dụng.


1
giải phóng bộ nhớ giúp Droid X của tôi không phải thu thập dữ liệu cực chậm với ~ 30-40 MB miễn phí để phản hồi hợp lý và nhanh chóng với> 70 MB miễn phí, trong cả hai trường hợp không có ứng dụng nào làm hỏng CPU. Tôi xin lỗi nhưng đó là một lý thuyết tốt đẹp mà KHÔNG ÁP DỤNG trong thực tế.
DVK

Ngoài ra, khi trình quản lý bộ nhớ Android giết trình duyệt web của tôi mất TẤT CẢ các tab đang mở của tôi để tạo khoảng trống cho Google Maps, đó là một thành công lớn.
DVK

4
Tôi đang nói với bạn, những gì bạn đang trải qua là một hiệu ứng giả dược. bộ nhớ trống không làm cho thiết bị của bạn chạy nhanh hơn, CPU miễn phí thì không. Tôi đã bao gồm một tài liệu tham khảo khác cho bạn về chủ đề của những kẻ giết người nhiệm vụ (ngay từ google)
Ryan Conrad

2
Sử dụng nhiệm vụ sát thủ sẽ gây ra cống, và tôi đã giải thích tại sao trong câu trả lời của mình. Trên hết, nếu bạn đọc toàn bộ câu trả lời, tôi sẽ cho bạn một câu trả lời chính xác cho vấn đề của bạn bằng cách sử dụng titan bằng cách đóng băng ứng dụng.
Ryan Conrad

3
@Chance không, bởi vì nếu bạn giết một tiến trình không thực sự chạy vào thời điểm đó, hệ thống cuối cùng sẽ phải bắt đầu quá trình đó sao lưu và nó sẽ thực hiện "tất cả khởi tạo" sẽ sử dụng CPU. Chỉ vì một quy trình đang chạy, không có nghĩa là nó thực sự đang làm bất cứ điều gì vào thời điểm đó.
Ryan Conrad

11

Bạn đã nghĩ về việc không cài đặt và cài đặt lại Bản đồ như một giải pháp khả thi chưa?

  1. Trước tiên, hãy loại bỏ các Bản đồ được tải sẵn bằng cách xóa /system/app/Maps.apktệp:

    su  
    rm /system/app/Maps.apk
    

    Khi một ứng dụng hệ thống được cập nhật, nó sẽ vô dụng trong thư mục / system / app và có thể bị xóa một cách an toàn.

  2. Sau đó sao chép phiên bản Bản đồ hiện tại vào Thẻ SD của bạn:

    cp /data/app/com.google.android.apps.maps*.apk /sdcard/
    
  3. Bây giờ gỡ cài đặt ứng dụng Bản đồ:

    pm uninstall -k com.google.android.apps.maps
    

    Công tắc "-k" giữ các cài đặt khi bạn cài đặt lại ứng dụng.

  4. Bây giờ để lấy lại Bản đồ, chỉ cần cài đặt lại từ bản sao lưu:

    pm install -r /sdcard/com.google.android.apps.maps*.apk
    

Bạn có thể tự động hóa các bước này thông qua GScript , cho phép bạn tạo lối tắt đến tập lệnh. Vì vậy, chỉ cần tạo một tập lệnh có tên "Vô hiệu hóa bản đồ" bằng lệnh từ bước # 3 và một tập lệnh khác có tên "Bật bản đồ" bằng lệnh từ bước số 4 (kiểm tra "Cần SU?" Cho cả hai).

Giờ đây, bạn có thể thêm 2 phím tắt GScript vào màn hình chính từ các tập lệnh bạn đã tạo bằng cách sử dụng phương pháp "Thêm lối tắt" thông thường của Android (GScript sẽ là một trong các tùy chọn ở đó.)

Hạn chế duy nhất của phương pháp này là rất có thể bạn sẽ mất phím tắt Bản đồ (và / hoặc tiện ích con) khỏi màn hình chính khi bạn gỡ cài đặt, yêu cầu bạn phải thêm lại sau khi cài đặt lại. Tất nhiên bạn vẫn có thể khởi chạy Bản đồ từ ngăn kéo ứng dụng.


Quy trình này có bị ảnh hưởng tiêu cực bởi thực tế là Bản đồ đã được cài đặt sẵn trên DroidX của tôi không? Hoặc đó không phải là trong ROM? +1 cho ý tưởng tuyệt vời!
DVK

2
Nếu bạn không xóa phiên bản hệ thống của APK trước, việc không cài đặt sẽ thất bại. Nói chung, một khi ứng dụng hệ thống nhận được bản cập nhật từ Market, APK tương ứng trong / system / app / thư mục của nó có thể bị xóa một cách an toàn.
Chahk

1
@Chank - Tôi cho rằng, nó không phải là bloatware Verizon, tôi thực sự có quyền truy cập để xóa phiên bản hệ thống miễn là tôi đã root? :)
DVK

1
Miễn là điện thoại của bạn được root, bạn sẽ không gặp khó khăn gì khi xóa Maps.apk khỏi / system / app.
Chahk

2

Bắt đầu với Android 4.0 Ice Cream Sandwich, bạn chỉ cần vô hiệu hóa Google Maps trong cài đặt hệ thống . Điều này sẽ không giúp bạn nếu bạn vẫn bị mắc kẹt trên Froyo, nhưng những người khác có thể nhận được một số lợi ích từ nó.


Nó vô hiệu hóa tất cả các dịch vụ liên quan? (GM và Latitude, v.v ...)?
DVK

Nó vô hiệu hóa hoàn toàn ứng dụng đó, bao gồm mọi thứ mà nó mang lại. Theo như tôi có thể nói, bao gồm Điều hướng, Vĩ độ, v.v.
Michael Hampton

1

Tôi đề nghị sử dụng tính năng Freeze của liên kết thị trường trang chủ sao lưu Titanium . Tôi tin rằng bạn phải đăng ký ứng dụng (6,58 đô la) để sử dụng tính năng này, nhưng tôi đảm bảo với bạn, nó đáng giá nếu bạn muốn hack điện thoại của mình. Lý do chính khác để trả tiền cho ứng dụng (ngoài việc hỗ trợ nhà phát triển viết một phần mềm miễn phí tốt) là để có thể thực hiện cài đặt hàng loạt (tức là khôi phục từ bản sao lưu) các ứng dụng và dữ liệu mà bạn đã sao lưu. Nếu không, bạn phải có được thông qua các hộp thoại cài đặt ứng dụng tiêu chuẩn.

Từ trang web về đóng băng:

Tủ đông ứng dụng có thể vô hiệu hóa một ứng dụng (và làm cho nó vô hình) mà không cần cài đặt nó

Hoặc bạn thực sự có thể thực hiện gỡ cài đặt và cài đặt lại. Bạn có thể thấy có nhiều lý do để làm điều đó qua việc đóng băng, tôi không biết.


Xin lỗi, nhưng điều này không hữu ích. Trong câu hỏi của tôi, trong phần "Những điều tôi đã thử", gạch đầu dòng số 3: "Đóng băng thông qua Titanium Backup Pro. Điều này đòi hỏi phải khởi động lại và thường không dễ chịu lắm."
DVK

0

Nếu điện thoại của bạn có tùy chọn Settings > Applications > Development > Stop app via long-press, bạn luôn có thể đóng Google Maps theo cách này, thì quá trình này cũng bị giết cho đến khi bạn mở lại ứng dụng.


-1

Root điện thoại của bạn sau đó sử dụng ứng dụng AutoStarts từ Google Play để tắt tất cả các sự kiện kích hoạt Bản đồ. Nó sẽ chạy tốt khi khởi động thủ công nhưng sẽ biến mất khi bạn giết nó. Vô hiệu hóa mọi thứ khác mà bạn không cần trong thư mục sự kiện After Startup để giảm thêm mức tiêu thụ bộ nhớ.


1
Bạn đã đọc kỹ câu hỏi chưa? Nó tuyên bố rõ ràng:Second, the only practical way of doing that that I know of is Autostarts app which is NOT a workable solution - it takes ~5-10 mins to find and re-enable all the intents I am aware of (Autostarts is really poor at per-app intent management - it's centered on per-intent), never mind possible intents that Autostarts does NOT know about (it's a black box, I don't know which intents are missed if any.
DVK
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.