Google maps semble avoir une quantité insensée d'intentions enregistrées, ainsi que d'autres façons de commencer.
Comme il s'agit d'une application assez gourmande en ressources (en particulier en termes de mémoire), je souhaiterais vivement qu'elle ne fonctionne pas en permanence à moins que / jusqu'à ce que j'en ai réellement besoin. Cependant, Android continue de le démarrer tout le temps - par exemple, lorsque l'état de la connectivité change (ce qui pour moi se produit assez fréquemment à l'intérieur) ou lorsque le GPS / l'emplacement du réseau change.
Existe-t-il un moyen de garantir que Google Maps ne démarre AUCUN processus, garanti, jusqu'à ce que je clique sur une icône pour la lancer délibérément?
Environnement : Droid X, exécutant le stock enraciné Froyo 2.2; J'ai des démarrages automatiques . et Advanced Task Killer, ainsi que la version Pro de Titanium Backup installée.
Je suis assez ouvert à presque toutes les méthodes tant que
C'est fiable.
Il me permet d'utiliser Google Maps avec des fonctionnalités 100% prévues une fois que j'en ai besoin, sans nécessiter 5 minutes de travail pour reconfigurer.
Idéalement, ne nécessite pas que je redémarre pour l'utiliser, mais celui-ci n'est pas un tueur de deal.
Je préférerais FORTEMENT une méthode générique qui serait applicable à d'autres applications, PAS seulement à Google Maps.
Je suis développeur de logiciels avec une bonne dose d'expérience en administration système Unix / Linux. En d'autres termes, les solutions qui nécessitent une invite shell ou l'écriture / l'exécution de scripts shell (ou Perl dans Android Scripting Environment) sont extrêmement bienvenues.
Les solutions impliquant l'écriture de ma propre application Java Android sont acceptables tant qu'elles sont suffisamment détaillées qu'un débutant en développement Android total peut faire au moins un peu de travail sans être perdu à 100%.
Choses que j'ai essayées:
Tuer les processus via Task Killer ne fonctionne PAS - ils reviennent, immédiatement ou dans peu de temps. Probablement via Intents mais pas sûr à 100%.
Méthodes standard pour se débarrasser des problèmes de GMaps (déconnectez-vous de Latitude / arrêtez le GPS et le localisateur de réseau). Cela semble aider beaucoup MAIS je trouve que la nécessité d'arrêter définitivement le GPS / localisateur est inacceptable - par exemple, cela ne me permettra pas d'exécuter l'application Locale ou les choses Tasker basées sur les paramètres régionaux.
Geler via Titanium Backup Pro. Cela nécessite un redémarrage et généralement peu agréable.
Les approches possibles auxquelles j'ai pensé (mais je ne sais pas comment faire) sont:
D'une manière ou d'une autre, éliminer (désactiver) ENTIÈREMENT toutes les intentions enregistrées par Google Maps lorsqu'elles ne sont pas nécessaires.
Problèmes: tout d'abord, je ne sais pas à quoi servent TOUTES les intentions de Google Maps.
Deuxièmement, la seule façon pratique de le faire que je sache est l'application Autostarts qui n'est PAS une solution viable - il faut environ 5 à 10 minutes pour trouver et réactiver toutes les intentions que je connais (les démarrages automatiques sont vraiment médiocres à -app intention management - c'est centré sur l'intention), peu importe les intentions possibles que Autostarts ne connaît PAS (c'est une boîte noire, je ne sais pas quelles intentions sont manquées, le cas échéant).
Avoir un script qui renommera les fichiers JAR ou quels que soient les fichiers exécutables sur Android (.APK entier?) De say
GoogleMaps.apk
toGoogleMaps.disabled.apk
et back.Problème: je ne sais pas si c'est possible de faire sur un Froyo enraciné. De plus, Google Maps était préinstallé sur DroidX, donc le changement de nom affecterait-il UNIQUEMENT la mise à jour mais pas l'application d'origine?
Ayez un script qui ira dans l'APK et renommer / déplacer / vider le fichier manifeste pour supprimer toute intention pour cette application.
Problème: cela nécessiterait-il une recompilation? Cela nécessite certainement un redémarrage qui est un inconvénient
Réponses:
D'après votre mention de Titanium Backup, je suppose que votre appareil est enraciné. Donc, ma recommandation absolue ici est AutoRun Manager (et oui, vous aurez besoin du Pro - deuxième oui, ça vaut le coup). Une fois installé, ouvrez l'application, utilisez le "mode avancé", recherchez l'application que vous souhaitez modifier (dans votre cas: Google Maps). Développez-le. ARM vous montrera tous ses écouteurs - désactivez-les.
C'est ça. Rien ne le réveille plus à moins que vous ne le démarriez explicitement. MAIS: Avant de le démarrer, vous devrez peut-être réactiver ces écouteurs, ou vous pouvez rencontrer des effets secondaires étranges (je l'ai fait). De l'autre côté, au moins cela ne nécessite pas de redémarrage.
Pour des détails techniques, vous voudrez peut-être recouper la question Comment puis-je gérer les associations d'intentions avec les applications , ou plonger directement dans la section Intentions des manuels du développeur AOSP .
la source
Tout d'abord, je vous suggère d'arrêter d'utiliser vos tueurs de tâches . Ils déchargent votre batterie plus que la sauver. Le système redémarre les services lorsqu'ils doivent s'exécuter, ce qui entraîne une utilisation de la batterie.
Deuxièmement, vous supposez que libérer de la mémoire est une bonne chose. Ce n'est pas. Libérer de la mémoire ne va pas réduire l'utilisation de la batterie. Ce que vous devez vraiment rechercher, ce sont les applications qui utilisent beaucoup de cycles CPU. C'est ce qui va vider votre batterie.
Android est basé sur Linux. Linux veut toujours utiliser toute la mémoire disponible car la mémoire libre est de la mémoire gaspillée. Le système Android se chargera de libérer la mémoire des applications qui ne sont pas utilisées afin que d'autres applications puissent l'utiliser en cas de besoin.
Même si vous essayez de tuer les applications en cours d'exécution et occupant de la mémoire, le système redémarrera ces services / applications, ce qui entraînera une décharge de la batterie car ils ont probablement une synchronisation qui se produit au démarrage, ou tout simplement les cycles de processeur utilisés. pour initialiser l'application. La suppression des applications entraînera également un ralentissement de l'appareil lors de la tentative de démarrage des applications, car quelque chose qui pourrait normalement s'exécuter maintenant doit être redémarré avant de vous présenter l'interface utilisateur des applications.
Certaines choses qui entraîneront une décharge de la batterie comme le GPS, le wifi, le bluetooth et l'utilisation des données vont beaucoup plus utiliser votre CPU pour traiter les données qui sont transmises et reçues. Les désactiver lorsqu'ils ne sont pas utilisés permettra d'économiser beaucoup de batterie. J'ai une mauvaise batterie dans mon appareil, elle ne se chargera même pas au-delà de 94%, mais je peux obtenir 12 heures ou plus de ma batterie si je désactive ces services lorsque je n'en ai pas besoin.
J'utilise Google Maps tout le temps, et dans mes statistiques de batterie, il n'est même pas répertorié comme une application utilisant des ressources. Mon utilisateur de batterie le plus élevé est l'écran @ 31%, et le plus bas affiché est GMail @ 3%. Je peux vous assurer que Google Maps n'est pas la cause de la décharge de votre batterie. L'utilisation de tueurs de tâches est probablement la cause. Comme je l'ai dit, j'utilise Google Maps pour les directions presque tous les jours, et ce n'est même pas dans la liste des 10 meilleures applications qui utilisent ma batterie.
Plus d'informations sur les tueurs de tâches sur le blog Google Android Developers .
Voici un autre article expliquant comment les tueurs de tâches videront votre batterie.
Une chose que vous pourriez faire si vous êtes vraiment déterminé à "arrêter les cartes" jusqu'à ce que vous vouliez l'utiliser est d'utiliser l'option Freeze dans la sauvegarde en titane. Cela supprimera essentiellement l'application de l'appareil et aucun des services qui lui sont associés ne démarrera jusqu'à ce que vous la décongeliez.
la source
Avez-vous pensé à désinstaller et réinstaller Maps comme solution possible?
Tout d'abord, débarrassez-vous des cartes préchargées en supprimant le
/system/app/Maps.apk
fichier:Une fois qu'une application système est mise à jour, elle est inutile dans le dossier / system / app et peut être supprimée en toute sécurité.
Copiez ensuite la version actuelle de Maps sur votre carte SD:
Désinstallez maintenant l'application Maps:
Le commutateur "-k" conserve les paramètres lorsque vous réinstallez l'application.
Maintenant, pour récupérer Maps, réinstallez-le simplement à partir de la sauvegarde:
Vous pouvez automatiser ces étapes via GScript , qui vous permet de créer des raccourcis vers des scripts. Il suffit donc de créer un script nommé "Désactiver les cartes" avec la commande de l'étape 3, et un autre nommé "Activer les cartes" avec la commande de l'étape 4 (cochez "Besoin de SU?" Pour les deux).
Vous pouvez maintenant ajouter 2 raccourcis GScript à votre écran d'accueil à partir des scripts que vous avez créés en utilisant la méthode normale "Ajouter un raccourci" d'Android (GScript sera l'une des options là-bas.)
Le seul inconvénient de cette méthode est que vous perdrez probablement le raccourci Maps (et / ou widget) de votre écran d'accueil lorsque vous le désinstallez, vous obligeant à le rajouter après la réinstallation. Bien sûr, vous pourrez toujours lancer Maps à partir du tiroir de l'application.
la source
À partir d'Android 4.0 Ice Cream Sandwich, vous pouvez simplement désactiver Google Maps dans les paramètres système . Cela ne vous aidera pas si vous êtes toujours bloqué sur Froyo, mais d'autres peuvent en tirer des avantages.
la source
Je suggère d'utiliser la fonction Freeze du lien de marché de la page d'accueil de sauvegarde Titanium . Je pense que vous devez enregistrer l'application (6,58 $) pour utiliser la fonctionnalité, mais je vous assure que cela vaut le prix si vous souhaitez pirater votre téléphone. L'autre raison principale de payer pour l'application (autre que pour aider le développeur à écrire un beau logiciel gratuit) est de pouvoir effectuer des installations par lots (c'est-à-dire la restauration à partir d'une sauvegarde) des applications et des données que vous avez sauvegardées. Sinon, vous devez passer par les boîtes de dialogue d'installation d'application standard.
Depuis le site Web sur le gel:
Ou vous pouvez réellement désinstaller et réinstaller. Vous trouverez peut-être qu'il y a des raisons de le faire par congélation, je ne sais pas.
la source
Si votre téléphone en a la possibilité
Settings > Applications > Development > Stop app via long-press
, vous pouvez toujours fermer Google Maps de cette façon, ce processus sera également tué jusqu'à ce que vous ouvriez à nouveau l'application.la source
Rooter votre téléphone puis utilisez l'application AutoStarts de Google Play pour désactiver tous les événements qui déclenchent Maps. Il fonctionnera correctement lorsqu'il est démarré manuellement, mais il disparaîtra lorsque vous le tuerez. Désactivez tout ce dont vous n'avez pas besoin dans le dossier d'événements Après le démarrage pour réduire davantage la consommation de mémoire.
la source
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.