In Google Maps sind anscheinend eine Vielzahl von Absichten sowie andere Startmöglichkeiten registriert.
Da dies eine ziemlich ressourcenhungrige App ist (besonders in Bezug auf den Speicher), möchte ich, dass sie permanent nicht ausgeführt wird, es sei denn, ich benötige sie tatsächlich. Android startet es jedoch ständig - zum Beispiel, wenn sich der Konnektivitätsstatus ändert (was für mich in Innenräumen häufig vorkommt) oder wenn sich der GPS- / Netzwerkstandort ändert.
Gibt es eine Möglichkeit, sicherzustellen, dass Google Maps garantiert keine Prozesse startet, bis ich auf ein Symbol klicke, um es absichtlich zu starten?
Umgebung : Droid X, verwurzelt mit Froyo 2.2; Ich habe Autostarts . und Advanced Task Killer sowie die Pro-Version von Titanium Backup installiert.
Ich bin ziemlich offen für fast jede Methode, solange
Es ist zuverlässig.
Damit kann ich Google Maps mit 100% der beabsichtigten Funktionalität verwenden, sobald ich es benötige, ohne 5 Minuten Arbeit für die Neukonfiguration zu benötigen.
Im Idealfall muss ich nicht neu starten, um es zu verwenden, aber dies ist kein Deal Killer.
Ich würde DRINGEND eine generische Methode bevorzugen, die auf andere Anwendungen anwendbar wäre, NICHT nur auf Google Maps.
Ich bin ein Softwareentwickler mit viel Erfahrung in der Unix / Linux-Systemadministration. Mit anderen Worten, Lösungen, die eine Shell-Eingabeaufforderung erfordern oder das Schreiben / Ausführen von Shell-Skripten (oder Perl in der Android-Skriptumgebung), sind äußerst willkommen.
Lösungen, bei denen ich meine eigene Java-Android-App schreibe, sind akzeptabel, solange sie detailliert genug sind, damit ein Anfänger in der Android-Entwicklung zumindest einige Aufgaben erledigen kann, ohne zu 100% verloren zu gehen.
Dinge, die ich versucht habe:
Das Beenden der Prozesse mit Task Killer funktioniert NICHT - sie werden entweder sofort oder nach kurzer Zeit wiederhergestellt. Wahrscheinlich mit Absichten, aber nicht zu 100% sicher.
Standardmethoden zum Entfernen von GMaps-Problemen (Abmelden von Latitude / Herunterfahren von GPS und Netzwerk-Locator). Dies scheint sehr hilfreich zu sein, ABER ich finde die Notwendigkeit, GPS / Locator dauerhaft herunterzufahren, inakzeptabel - z.
Über Titanium Backup Pro einfrieren. Dies erfordert einen Neustart und ist im Allgemeinen nicht sehr angenehm.
Mögliche Ansätze, die ich mir überlegt habe (aber nicht weiß, wie ich vorgehen soll ) sind:
Irgendwie VOLLSTÄNDIG alle von Google Maps registrierten Absichten eliminieren (deaktivieren), wenn sie nicht benötigt werden.
Probleme: Erstens weiß ich nicht, was ALLE Absichten von Google Maps verwenden.
Zweitens ist die einzige praktische Möglichkeit, die ich kenne, die Autostarts-App, die KEINE praktikable Lösung ist. Es dauert ca. 5-10 Minuten, um alle mir bekannten Absichten zu finden und wieder zu aktivieren (Autostarts ist per se wirklich schlecht) -app Intent Management - es konzentriert sich auf pro-Intent), unabhängig von möglichen Absichten, die Autostarts NICHT kennt (es ist eine Black Box, ich weiß nicht, welche Absichten, wenn überhaupt, übersehen werden.
Haben Sie ein Skript, das die JARs oder was auch immer die ausführbaren Dateien auf Android sind (gesamte .APK?) Von sagen
GoogleMaps.apk
zuGoogleMaps.disabled.apk
und zurück umbenennt .Problem: Ich weiß nicht, ob dies auf einem verwurzelten Froyo möglich ist. Außerdem war Google Maps auf DroidX vorinstalliert. Würde sich eine Umbenennung NUR auf das Update auswirken, nicht jedoch auf die ursprüngliche App?
Haben Sie ein Skript, das in die APK geht und Manifest-Datei umbenennt / verschiebt / ausleert, um alle Absichten für diese App zu entfernen.
Problem: Wäre hierfür eine Neukompilierung erforderlich? Es ist definitiv ein Neustart erforderlich, was ein Minus ist
Antworten:
Aufgrund Ihrer Erwähnung von Titanium Backup gehe ich davon aus, dass Ihr Gerät gerootet ist. Meine absolute Empfehlung hier ist AutoRun Manager (und ja, Sie werden den Pro brauchen - zweitens ja, es lohnt sich). Nachdem dies installiert ist, öffnen Sie die App, verwenden Sie den "Erweiterten Modus" und suchen Sie nach der App, die Sie ändern möchten (in Ihrem Fall: Google Maps). Es ausweiten. ARM zeigt Ihnen alle Listener an - deaktivieren Sie sie.
Das ist es. Nichts weckt es mehr, wenn Sie es nicht explizit starten. ABER: Bevor Sie es starten, müssen Sie diese Hörer möglicherweise wieder aktivieren, oder es treten merkwürdige Nebenwirkungen auf (ich habe es getan). Auf der anderen Seite ist zumindest kein Neustart erforderlich.
Technische Details erhalten Sie, wenn Sie die Frage Wie kann ich Absichtszuordnungen mit Apps verwalten oder direkt in den Abschnitt "Absichten" der AOSP-Entwicklerhandbücher eintauchen .
quelle
Zuerst schlage ich vor, Sie verwenden Ihre Task-Killer nicht mehr . Sie belasten Ihre Batterie mehr als sie zu schonen. Das System startet die Dienste neu, wenn sie ausgeführt werden müssen, wodurch der Akku verbraucht wird.
Zweitens gehen Sie davon aus, dass es gut ist, Speicher freizugeben. Es ist nicht. Durch die Freigabe des Speichers wird die Akkunutzung nicht verringert. Nach was Sie wirklich suchen müssen, ist die apps, die viele CPU-Zyklen verwenden. Dies ist es, was Ihre Batterie entlädt.
Android basiert auf Linux. Linux möchte immer den gesamten verfügbaren Speicherplatz nutzen, da freier Speicherplatz verschwendet wird. Das Android-System sorgt für die Freigabe des Arbeitsspeichers von Anwendungen, die nicht verwendet werden, damit andere Anwendungen ihn bei Bedarf verwenden können.
Selbst wenn Sie versuchen, Anwendungen zu beenden, die ausgeführt werden und Speicher beanspruchen, startet das System diese Dienste / Anwendungen entweder neu, was zu einer Entladung des Akkus führt, da beim Starten möglicherweise Synchronisierungen auftreten, oder es werden nur die CPU-Zyklen verwendet um die Anwendung zu initialisieren. Das Beenden der Anwendungen führt auch dazu, dass das Gerät beim Versuch, Anwendungen zu starten, langsam erscheint, da etwas, das normalerweise ausgeführt wird, erst wieder gestartet werden muss, bevor die Benutzeroberfläche der Anwendungen angezeigt wird.
Einige Dinge wie GPS, WLAN, Bluetooth und Datennutzung, die zu Batterieentladung führen, werden Ihre CPU viel stärker für die Verarbeitung der gesendeten und empfangenen Daten belasten. Wenn Sie diese ausschalten, wenn Sie sie nicht verwenden, wird viel Strom gespart. Ich habe einen defekten Akku in meinem Gerät, der sich nicht einmal mehr als 94% auflädt, aber ich kann 12 oder mehr Stunden aus meinem Akku herausholen, wenn ich diese Dienste ausschalte, wenn ich sie nicht benötige.
Ich benutze Google Maps die ganze Zeit und in meinen Akkustatistiken wird es nicht einmal als App aufgeführt, die Ressourcen verwendet. Mein höchster Akku-Benutzer ist der Bildschirm mit 31%, und der niedrigste angezeigte Wert ist GMail mit 3%. Ich kann Ihnen versichern, Google Maps ist nicht die Ursache für Ihre Batterieentladung. Der Einsatz von Task Killern ist eher die Ursache. Wie gesagt, ich verwende fast täglich Google Maps für Wegbeschreibungen, und es ist nicht einmal in den Top 10 der Apps, die meinen Akku verwenden.
Weitere Informationen zu Taskkillern finden Sie im Google Android Developers-Blog .
Hier ist ein weiterer Artikel darüber, wie Taskkiller Ihre Batterie entladen.
Eine Sache, die Sie tun können, wenn Sie wirklich "Karten anhalten" möchten, bis Sie sie verwenden möchten, ist die Option "Einfrieren" in der Titansicherung. Dadurch wird die Anwendung im Wesentlichen vom Gerät entfernt und keiner der damit verbundenen Dienste wird jemals gestartet, bis Sie das Einfrieren aufheben.
quelle
Haben Sie darüber nachgedacht, Maps als mögliche Lösung zu deinstallieren und erneut zu installieren?
Entfernen Sie zuerst die vorinstallierten Maps, indem Sie die
/system/app/Maps.apk
Datei löschen :Sobald eine System-App aktualisiert wurde, ist sie im Ordner / system / app unbrauchbar und kann sicher gelöscht werden.
Kopieren Sie dann die aktuelle Maps-Version auf Ihre SD-Karte:
Deinstallieren Sie nun die Maps-App:
Der Schalter "-k" behält die Einstellungen bei, wenn Sie die App neu installieren.
Um Maps wieder zu erhalten, installieren Sie es einfach erneut:
Sie können diese Schritte über GScript automatisieren , wodurch Sie Verknüpfungen zu Skripten erstellen können. Erstellen Sie einfach ein Skript mit dem Namen "Disable Maps" mit dem Befehl aus Schritt 3 und ein anderes mit dem Namen "Enable Maps" mit dem Befehl aus Schritt 4 (aktivieren Sie "Needs SU?" Für beide).
Jetzt können Sie Ihrem Startbildschirm 2 GScript-Verknüpfungen aus den Skripten hinzufügen, die Sie mit der normalen Android-Methode "Verknüpfung hinzufügen" erstellt haben (GScript ist dort eine der Optionen.)
Der einzige Nachteil dieser Methode ist, dass Sie höchstwahrscheinlich die Maps-Verknüpfung (und / oder das Widget) von Ihrem Startbildschirm verlieren, wenn Sie es deinstallieren, und dass Sie es nach der Neuinstallation erneut hinzufügen müssen. Sie können Maps natürlich weiterhin über die App-Schublade starten.
quelle
Ab Android 4.0 Ice Cream Sandwich können Sie Google Maps in den Systemeinstellungen einfach deaktivieren . Das hilft dir nicht, wenn du immer noch auf Froyo stehst, aber andere könnten davon profitieren.
quelle
Ich schlage vor, die Freeze-Funktion von Titanium Backup Homepage Market Link zu verwenden . Ich glaube, Sie müssen die App registrieren (6,58 USD), um die Funktion nutzen zu können, aber ich versichere Ihnen, es ist den Preis wert, wenn Sie Ihr Telefon hacken möchten. Der andere Hauptgrund für die Bezahlung der App (abgesehen von der Unterstützung des Entwicklers beim Schreiben einer guten, kostenlosen Software) ist die Möglichkeit, Apps und Daten, die Sie gesichert haben, stapelweise zu installieren (dh von einem Backup wiederherzustellen). Andernfalls müssen Sie die Standard-App-Installationsdialoge durchlaufen.
Von der Website über Einfrieren:
Oder Sie können eine Deinstallation durchführen und neu installieren. Möglicherweise gibt es Gründe, dies übermäßig einzufrieren, ich weiß es nicht.
quelle
Wenn Ihr Telefon die Option hat
Settings > Applications > Development > Stop app via long-press
, können Sie Google Maps immer auf diese Weise schließen. Dieser Vorgang wird dann ebenfalls abgebrochen, bis Sie die App erneut öffnen.quelle
Rooten Sie Ihr Telefon und deaktivieren Sie mit der AutoStarts-App von Google Play alle Ereignisse, die Maps auslösen. Es läuft gut, wenn es manuell gestartet wird, bleibt aber weg, wenn Sie es töten. Deaktivieren Sie alles, was Sie im Ereignisordner After Startup nicht benötigen, um den Speicherverbrauch weiter zu reduzieren.
quelle
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.