Gerektiği kadar Google Haritalar’ı kalıcı olarak kapatmanın bir yolu var mı?


24

Google haritaları, bunun için kaydedilmiş başka bir yolun yanı sıra, çılgınca miktarda Niyete sahip görünüyor.

Bu güzel bir kaynak aç uygulaması (özellikle akıllıca) olduğundan, gerçekten ihtiyacım olana kadar / sürekli olarak çalışmamasını çok isterdim . Bununla birlikte, Android her zaman başlatmaya devam ediyor - örneğin, bağlantı durumu değiştiğinde (bu benim için iç mekanlarda oldukça sık gerçekleşen) veya GPS / ağ konumu değiştiğinde.

Google Haritalar'ın kasıtlı olarak başlatmak için bir simgeye tıklayana kadar HERHANGİ bir işlem başlatmamasını garanti etmenin bir yolu var mı?

Çevre : Droid X, çalışan köklü stok Froyo 2.2; Ben autostarts . ve Gelişmiş Görev Killer yanı sıra yüklü Titanyum Yedekleme Pro sürümü.

Hemen hemen her yönteme oldukça açıkım

  • Güvenilir.

  • Yeniden yapılandırmak için 5 dakikalık çalışma gerektirmeden, ihtiyacım olduğunda Google Haritalar'ı% 100 amaçlanan işlevsellik kullanmama izin veriyor.

  • İdeal olarak, onu kullanmak için yeniden başlatmamı gerektirmiyor, ancak bu bir anlaşma katili değil.

  • GÜÇLÜ sadece Google Haritalar değil, diğer uygulamalara uygulanabilecek genel bir yöntemi tercih ederdim.

  • Yüksek dozda Unix / Linux sistem yönetimi deneyimi olan bir yazılım geliştiricisiyim. Başka bir deyişle, kabuk istemi veya yazma / çalıştırma kabuk komutları (veya Android Komut Dosyası Ortamında Perl) gerektiren çözümler son derece açıktır.

    Kendi Java Android uygulamamın yazılmasını içeren çözümler, toplam bir Android geliştirme uzmanının,% 100 kaybedilmeden en azından bazı işleri yapabileceğinden yeterince ayrıntılı olduğu sürece kabul edilebilir.

Çalıştığım şeyler:

  • İşlemleri Görev Katil ile öldürmek işe yaramaz - hemen ya da kısa sürede geri gelirler. Muhtemelen Niyetler aracılığıyla ama% 100 kesin değil.

  • GMaps sorunlarından kurtulmanın standart yöntemleri (Latitude / oturumu kapat GPS ve ağ bulucu ile oturumu kapatın). Bu çok yardımcı oluyor, ancak kabul edilemez olması için GPS / konum belirleyiciyi kalıcı olarak kapatma ihtiyacını buluyorum - örneğin, Locale uygulamasını veya yerel ayarlı Tasker öğelerini çalıştırmama izin vermiyor.

  • Titanyum Yedekleme Pro ile dondurun. Bu yeniden başlatma gerektirir ve genellikle çok hoş değil.

Düşündüğüm (ama nasıl yapacağımı bilmediğim) olası yaklaşımlar :

  • Her nasılsa, Google Maps tarafından ihtiyaç duyulmadığında kaydedilen tüm Amaçları TAMAMEN tamamen ortadan kaldırır (kapatır).

    Sorunlar: Öncelikle, Google Maps’in TÜM Amaçları’nın ne kullandığını bilmiyorum.

    İkincisi, bildiğim şeyi yapmanın tek pratik yolu, uygulanabilir bir çözüm olmayan Autostarts uygulaması - farkında olduğum tüm niyetleri bulmak ve yeniden etkinleştirmek ~ 5-10 dakika sürer (Autostarts gerçekten çok kötü -app niyet yönetimi - amaç başına odaklanmıştır), Autostarts'ın bilmediği olası niyetleri boşver. (bu kara kutu, eğer varsa hangilerinin kaçırıldığını bilmiyorum).

  • JARs adlandırmak veya Android'te ne olursa olsun yürütülebilir dosyalar söz hakkından tamamını (.apk?) Vardır edecek bir komut dosyası var GoogleMaps.apketmek GoogleMaps.disabled.apkve arka.

    Sorun: Bunun köklü bir Froyo'da yapılıp yapılmadığını bilmiyorum. Ayrıca, Google Haritalar DroidX’e önceden yüklenmiştir, bu nedenle SADECE yeniden adlandırmak güncellemeyi etkiler, ancak orijinal uygulamayı etkilemez mi?

  • APK'ye gidecek bir komut dosyası edinin ve bu uygulamaya yönelik niyetleri kaldırmak için manifest dosyasını yeniden adlandırın / taşıyın / boşaltın.

    Sorun: Bu bir yeniden derleme gerektiriyor mu? Kesinlikle bir eksi olan bir yeniden başlatma gerektirir


2
Lütfen "Google Haritalar’ı gerektiği kadar kalıcı olarak kapatmanın bir yolu var mı?" Diye sorduğumu unutmayın. " Google Haritalar’ın başlamasını kalıcı olarak durdurmam gerekir mi?" Veya "GMap’ları çalıştırmaya devam etmek ve pil ömrünü korumak için geçici çözümler nelerdir" sorusunu sormuyorum.
DVK

"Titanium Backup Pro ile dondurun. Bu yeniden başlatma gerektirir ve genellikle çok hoş değil." İlginç. Haritalar gibi tüm uygulamalar için mi yoksa sadece daha fazla gömülü bir şey mi yapıyor?
Şans

@Chance - Benim izlenim tüm uygulamalar için oldu.
DVK

3
Gerçekten denedin mi? Daha önce uygulamaları dondurmak için Ti-Bu'yu kullandım ve yeniden başlatmam gerekmedi.
Şans

@Chance - Dondurduğum uygulamalarım, yeniden başlatılıncaya kadar yeniden belleğe aktarılmadı. Yanlış yaptım, belki de yakın zamanda TBPro kullanmaya başladım.
DVK

Yanıtlar:


5

Titanyum Yedekleme'den bahsettiğinizden, cihazınızın kullanıldığını varsayalım. Bu yüzden mutlak tavsiyem burada AutoRun Manager (ve evet, Pro'ya ihtiyacınız olacak - ikinci evet, buna değer). Kurulduktan sonra uygulamayı açın, "gelişmiş modu" kullanın, değiştirmek istediğiniz uygulamayı arayın (sizin durumunuz: Google Haritalar). Genişletin. ARM size tüm dinleyicilerini gösterecek - devre dışı bırakın.

Bu kadar. Açıkça başlamadan hiçbir şey artık uyanmıyor. AMA: Başlamadan önce, bu dinleyicileri tekrar etkinleştirmeniz gerekebilir veya garip yan etkiler yaşayabilirsiniz (yaptım). Diğer tarafta, en azından bu yeniden başlatma gerektirmez.

Teknik ayrıntılar için, uygulamalarla niyet ilişkilerini nasıl yönetebilirim veya doğrudan AOSP geliştirici kılavuzlarının Amaçlar bölümüne dalabilirim sorusuyla bağlantı kurmak isteyebilirsiniz .


16

İlk önce görev katillerini kullanmayı bırakmanı öneririm . Bataryanızı tasarruf etmekten daha fazla tüketiyorlar. Sistem, çalışması gerektiğinde, pil kullanımına neden olan hizmetleri yeniden başlatıyor.

İkincisi, hafızayı boşaltmanın iyi bir şey olduğu varsayımı altındasınız. O değil. Belleği boşaltmak, pil kullanımını azaltmaz. Gerçekten aramanız gereken şey, çok fazla CPU döngüsü kullanan uygulamalar. Bataryanızı boşaltan şey budur.

Android Linux tabanlı. Linux her zaman mevcut tüm belleği kullanmak ister, çünkü boş hafıza boşa harcanır. Android sistemi, kullanılmayan uygulamaların hafızasını serbest bırakmakla ilgilenir, böylece diğer uygulamalar gerektiğinde kullanabilir.

Çalışmakta olan ve hafızayı alan uygulamaları denemeye ve öldürmeye çalışsanız bile, sistem ya bu uygulamaları / uygulamaları yeniden başlatır; bu da batarya boşalmasına neden olacağı için muhtemelen başlatırken olan bazı senkronizasyonlara veya sadece kullanılan CPU döngülerine sahiptir. uygulamayı başlatmak için. Uygulamaları öldürmek, uygulamaları başlatmaya çalışırken cihazın yavaş görünmesine de neden olacaktır, çünkü normalde çalışmakta olan bir şeyin, size uygulamalar kullanıcı arayüzünü sunmadan önce yeniden başlatılması gerekir.

GPS, wifi, bluetooth ve veri kullanımı gibi pil tüketimine yol açacak bazı şeyler CPU'nuzu, iletilmekte ve alınan verileri işlemek için çok daha fazla kullanacaktır. Kullanılmadığı zaman bunların kapatılması, pilin boşalmasına neden olur. Cihazımda kötü bir batarya var,% 94'ü bile şarj etmiyor, ancak bu hizmetleri kapatmam gerekirse, ihtiyacım olmadığında bataryamdan 12 veya daha fazla saat alabilirim.

Her zaman google maps kullanıyorum ve batarya istatistiklerimde kaynakları kullanan bir uygulama olarak bile listelenmiyor. En yüksek pil kullanıcım Ekran% @% 31, gösterilen en düşük% GMail% 3'tür. Sizi temin ederim, google maps bataryanın boşalmasının nedeni değil. Görev katillerini kullanmak, bunun nedenidir. Söylediğim gibi, neredeyse her gün yol tarifleri için google maps kullanıyorum ve pilimi kullanan uygulamalar listesinde ilk 10 bile yer almıyor.

Google Android Geliştiricileri blogundan görev katilleri hakkında daha fazla bilgi .

Android çoklu görevleriyle ilgili yaygın bir yanlış anlama, bir işlem ile bir uygulama arasındaki farktır. Android'de bunlar sıkı sıkıya bağlı varlıklar değildir: uygulamalar şu anda uygulamayı çalıştıran gerçek bir işlem olmadan kullanıcıya görünebilir; birden fazla uygulama işlemleri paylaşabilir veya bir uygulama gereksinimlerine bağlı olarak birden fazla işlemi kullanabilir; Bir uygulamanın süreçleri, bir uygulama aktif bir şey yapmıyor olsa bile Android tarafından tutulabilir.

Bir uygulamanın "çalışıyor" işlemini görebiliyor olmanız, uygulamanın çalıştığı veya bir şey yaptığı anlamına gelmez. Basitçe orada olabilir çünkü Android bir noktada buna ihtiyaç duyuyordu ve tekrar ihtiyaç duyması durumunda onu korumanın en iyisi olacağına karar verdi. Aynı şekilde, bir uygulama için bir süreliğine bırakabilir ve bıraktığınız yerden geri dönebilirsiniz ve bu süre zarfında Android'in başka şeyler için işlemden kurtulması gerekebilir.

Android'in uygulamaları bu şekilde ele almasının anahtarı, işlemlerin düzgün bir şekilde kapanmamasıdır. Kullanıcı bir uygulamadan ayrıldığında, işlemi arka planda tutulur, gerektiğinde çalışmaya devam etmesini sağlar (örneğin, web sayfalarını indirme) ve kullanıcı geri dönerse hemen ön plana çıkar. Bir cihazın hafızası hiç tükenmezse, Android tüm bu işlemleri etrafında tutar ve tüm uygulamaları her zaman "çalışır halde" bırakır.

Tabii ki, sınırlı miktarda bellek vardır ve bu Android'i barındırmak için ne zaman gerekli olmayan işlemlerden ne zaman kurtulmanız gerektiğine karar vermelisiniz. Bu, Android'in işlem yaşam döngüsüne, her sürecin ne kadar önemli olduğuna karar vermek için kullandığı kurallara ve böylece bir sonraki adımın atılmasına yol açar. Bu kurallar hem bir sürecin kullanıcının mevcut deneyimi için ne kadar önemli olduğuna hem de işlemin kullanıcı tarafından en son ihtiyaç duyulmasından bu yana ne kadar zaman geçtiğine dayanmaktadır.

Android bir süreci kaldırması gerektiğine karar verdiğinde, bunu acımasızca yapar, onu zorla öldürür. Daha sonra çekirdek, işlemin ihtiyaç duyduğu tüm kaynakları derhal geri alabilir; bu uygulamanın, iyi bir şekilde yazılmış ve çıkmak için kibar bir talebe cevap vermesine dayanmadan. Çekirdeğin uygulama kaynaklarını derhal geri almasına izin vermek, ciddi bellek durumlarından kaçınmayı çok daha kolaylaştırır.

Bir kullanıcı daha sonra öldürülmüş bir uygulamaya geri dönerse, Android'in "tüm uygulamalar her zaman çalışıyor" deneyimini korumak için en son görüldüğü gibi yeniden başlatılması için bir yola ihtiyacı vardır. Bu, kullanıcının farkında olduğu uygulamanın bölümlerini takip ederek (Etkinlikler) ve onları en son görüldüğü durum hakkında bilgi ile yeniden başlatmak suretiyle yapılır. Uygulamanın öldürüldüğü zaman değil, böylece çekirdeğin daha sonra serbestçe öldürülmesi için uygulamaya o noktaya uygun şekilde cevap vermesi gerekir.

Bazı yönlerden, Android'in süreç yönetimi, bir takas alanı şekli olarak görülebilir: uygulama işlemleri, belirli bir kullanım içi belleği temsil eder; hafıza az olduğunda, bazı işlemler öldürülebilir (değişebilir); Bu işlemlere tekrar ihtiyaç duyulduğunda, son kaydedilmiş durumlarından tekrar başlatılabilir (değiştirilebiliyor).

Task katillerinin pilinizi nasıl boşaltacağı hakkında bir başka makale.

Otomatik Görev Öldürme Yazılımı kullanmayın
Uzun öyküyü kısa yapmak için, otomatik görevli katilleri kullanmak aşağıdakilere neden olabilir: aşırı pil boşalması (telefon bataryayı yeterince hızlı boşalmamış gibi), telefonun aşırı ısınması ve programların kapanması (çarpışarak) rastgele - gerçekten kullanmak istediğiniz programları. Bunlardan uzak dur!

Kullanmak istediğinize kadar gerçekten “haritaları durdurma” ayarındaysanız, yapabileceğiniz bir şey titanyum yedeklemesinde Dondur seçeneğini kullanmaktır. Bu, esas olarak uygulamayı cihazdan kaldıracak ve onunla ilişkili hizmetlerin hiçbiri siz onu çözene kadar başlayacaktır.


1
belleği boşaltmak, Droid X'in ~ 30-40 MB boş alanla oldukça yavaş sürünmesini ve> 70MB boş alanla makul derecede duyarlı ve hızlı olmasını, her iki durumda da CPU kullanımına gerek kalmadan uygulamalarını önlüyor. Üzgünüm ama bu pratikte UYGULANMAYAN güzel bir teori.
DVK

Ayrıca, Android bellek yöneticisi Google Haritalar’a yer açmak için TÜM açık sekmelerimi kaybettiğinde web tarayıcımı öldürdüğünde, bu büyük bir üretkenlik darbesidir.
DVK

4
Size söylüyorum, yaşadığınız şey bir plasebo etkisi. boş hafıza, cihazınızın daha hızlı çalışmasını sağlamaz, boş CPU kullanır. Görev katillerinin konusu hakkında sizin için başka bir referans ekledim (Google’dan)
Ryan Conrad

2
Görev katilini kullanmak boşa neden olacak ve cevabımda neden olduğunu açıkladım. Bunun da ötesinde, tüm cevabı okursanız, uygulamanın dondurulmasıyla titanyum kullanarak probleminize tam bir cevap veririm.
Ryan Conrad

3
@ Hayır, çünkü o sırada gerçekten çalışmayan bir süreci öldürürseniz, sistem sonunda bu işlemi tekrar başlatmak zorunda kalacak ve CPU'yu kullanacak olan "tüm başlatma işlemlerini" yapacak. Sırf bir süreç devam ediyor, o zamanlar aslında her şeyi yapıyor demektir.
Ryan Conrad

11

Google Haritalar'ı kaldırmayı ve yeniden kurmayı olası bir çözüm olarak düşündünüz mü?

  1. Öncelikle, /system/app/Maps.apkdosyayı silerek önceden yüklenmiş Haritalar'dan kurtulun :

    su  
    rm /system/app/Maps.apk
    

    Bir sistem uygulaması güncellendikten sonra, / system / app klasöründe işe yaramaz ve güvenle silinebilir.

  2. Ardından mevcut Haritalar sürümünü SD Kartınıza kopyalayın:

    cp /data/app/com.google.android.apps.maps*.apk /sdcard/
    
  3. Şimdi Haritalar uygulamasını kaldırın:

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

    "-K" anahtarı, uygulamayı tekrar kurduğunuzda ayarlarınızı korur.

  4. Artık Haritalar'ı geri almak için basitçe yedekten tekrar yükleyin:

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

Bu adımları , komut dosyalarına kısayollar oluşturmanıza olanak tanıyan GScript ile otomatikleştirebilirsiniz . Bu nedenle, yalnızca # 3 adımındaki komutla "Haritaları Devre Dışı Bırak" adlı bir komut dosyası ve 4. adımdaki komutla "Haritaları Etkinleştir" adlı bir komut dosyası oluşturun (her ikisi için de "SU'lar mı gerekiyor?" Seçeneğini işaretleyin).

Artık Android'in normal "Kısayol Ekle" yöntemini kullanarak oluşturduğunuz komut dosyalarından ana ekranınıza 2 GScript kısayolu ekleyebilirsiniz (GScript, buradaki seçeneklerden biri olacaktır.)

Bu yöntemin tek dezavantajı, kaldırdığınızda, yeniden yükledikten sonra yeniden eklemenizi gerektiren büyük olasılıkla, ana ekranınızdan Haritalar kısayolunu (ve / veya widget'ı) kaybetmenizdir. Tabii ki hala uygulama çekmecesinden Haritalar başlatabileceksiniz.


Bu prosedür, Maps’in DroidX’e önceden yüklenmiş olması gerçeğinden olumsuz etkilenir mi? Ya da ROM’da değildi? Mükemmel fikir için +1!
DVK

2
Önce APK'nin sistem sürümünü kaldırmazsanız, kaldırma işlemi başarısız olur. Genellikle, bir sistem uygulaması Market'ten bir güncelleme aldığında, ilgili APK in / system / app / klasöründe güvenle silinebilir.
Chahk

1
@Chank - Verizon bloatware olmadığından, sistem sürümünü kök root kullandığım sürece kaldırabilirim. :)
DVK

1
Telefonunuz root olduğu sürece, Maps.apk 'ı / system / app' dan çıkarırken sorun yaşamanız gerekmez.
12'de Chahk

2

Android 4.0 Dondurmalı Sandviç'ten başlayarak, Google Haritalar’ı sistem ayarlarında devre dışı bırakabilirsiniz . Eğer hala Froyo'ya takılı kalırsanız, bu size yardımcı olmaz, ancak diğerleri bundan bir miktar faydalanabilir.


İlgili tüm hizmetleri devre dışı bırakır mı? (GM ve Enlem vb.)?
DVK,

Getirdiği her şey dahil, bu uygulamayı tamamen devre dışı bırakır. Söyleyebildiğim kadarıyla, Navigasyon, Latitude, vb
Michael Hampton

1

Titanium yedekleme anasayfa pazar bağlantısının Freeze özelliğini kullanmanızı öneririm . Özelliği kullanmak için uygulamayı kaydetmeniz gerektiğine inanıyorum ($ 6.58), ancak sizi temin ederim, telefonunuzu hacklemek isterseniz, buna değer. Uygulama için ödeme yapmanın diğer temel nedeni (geliştiriciyi iyi bir ücretsiz yazılım yazmak için desteklemekten başka), yedeklediğiniz uygulamaların ve verilerin toplu yüklemelerini (yani yedeklemeden geri yükleme) yapabilmektir. Aksi takdirde, standart uygulama yükleme iletişim kutularını aşmanız gerekir.

Donma hakkında web sitesinden:

Uygulama dondurucusu, bir uygulamayı kaldırmadan devre dışı bırakabilir (ve görünmez hale getirebilir)

Veya gerçekten bir kaldırma ve yeniden yükleme yapabilirsiniz. Bunu donmanın üzerinde yapmanın sebepleri olduğunu biliyorsun, bilmiyorum.


Üzgünüz, ama bu yardımcı değil. Benim soruma göre, "Çalıştığım Şeyler" başlığı altındaki madde işareti 3: "Titanium Backup Pro ile dondurun. Bu yeniden başlatma gerektirir ve genellikle çok hoş değil."
DVK

0

Telefonunuzda bir seçenek Settings > Applications > Development > Stop app via long-pressvarsa, Google Haritalar’ı her zaman bu şekilde kapatabilirsiniz, daha sonra uygulamayı tekrar açana kadar bu işlem de öldürülür.


-1

Haritalar'ı tetikleyen tüm olayları devre dışı bırakmak için telefonunuzu köklendirin ve Google Play'deki AutoStarts uygulamasını kullanın. Manuel olarak başlatıldığında iyi çalışır ancak öldürdüğünüzde kaybolur. Bellek tüketimini daha da azaltmak için, Başlangıç ​​Sonrası olay klasöründe ihtiyacınız olmayan herhangi bir şeyi devre dışı bırakın.


1
Soruyu dikkatlice okudun mu? Açıkça belirtildiği gibi: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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.