Comment arrêter Wakelocks à partir de n'importe quelle application Android sans racine

Avez-vous déjà dormi la nuit avec un téléphone complètement chargé, juste pour vous réveiller avec une batterie faible? Ne vous inquiétez pas, cela nous est arrivé à tous. Même avec le mode Doze et tous les efforts de Google pour améliorer la durée de vie de la batterie sous Android, la durée de vie de la batterie inactive n'est pas tout à fait idéale. Surtout si vous avez beaucoup d'applications installées. Le coupable est très probablement un wakelock qui se comporte mal depuis une application comme Facebook, Messenger, Snapchat, etc. Heureusement, vous pouvez facilement arrêter ces wakelocks en utilisant de simples commandes shell. Et vous n'avez même pas besoin de root pour ça! Aujourd'hui, nous allons vous montrer comment arrêter les wakelocks à partir de n'importe quelle application Android sans utiliser root. Cela peut être fait sur tous les téléphones Android, à condition que vous obteniez la BAD.


Arrêtez Wakelocks depuis n'importe quelle application Android

Tutoriel vidéo de notre chaîne YouTube au cas où vous préféreriez une aide visuelle

Avant de commencer avec quoi que ce soit, vous devrez configurer ADB sur votre téléphone et sur votre ordinateur. Si vous ne l'avez pas encore fait, référez-vous à ce tutoriel pour vous configurer.

À moins que vous ne soyez absolument sûr de ce qui va épuiser votre batterie, nous allons utiliser un petit outil appelé «Meilleures statistiques de la batterie» afin de trouver le coupable. Le développeur est actif sur nos forums, vous pouvez donc trouver l'application ici. Toutefois, si vous souhaitez aider le développeur, vous pouvez également le télécharger à partir du Google Play Store, où il s'agit d'une application payante. Il fournit de nombreuses autres statistiques telles que les états de la CPU, les mises en route des applications et les informations sur le réseau.

Cela nécessite l’utilisation de la racine sur les appareils équipés d’Android KitKat ou version ultérieure, mais il existe une solution de contournement de commande ADB qui existe pour les appareils non racinés. Connectez votre appareil à votre ordinateur, que ce soit par débogage USB ou WiFi. Assurez-vous qu'il est connecté en utilisant la commande:

 adb devices 

Ensuite, nous allons démarrer le shell Android en utilisant la commande suivante:

 adb shell 

Ensuite, nous allons accorder l’autorisation BATTERY_STATS à BetterBatteryStats qui vient d’être installée avec:

 pm grant com.asksven.betterbatterystats_xdaedition android.permission.BATTERY_STATS 

Terminé! Maintenant, BBS fonctionnera sur votre appareil sans racines.

Remarque: si vous avez acheté de meilleures statistiques de batterie sur le Google Play Store, remplacez «com.asksven.betterbatterystats_xdaedition» par «com.asksven.betterbatterystats» dans la commande ADB ci-dessus.

Trouver le coupable

Vous avez de nombreuses applications sur votre téléphone, il n’ya donc pas de moyen facile de savoir avec certitude ce qui grince votre batterie. C'est pourquoi nous utilisons Better Battery Stats pour trouver le wakelock responsable. Une fois l'application configurée, chargez votre téléphone, débranchez-le et laissez-le seul avec l'écran éteint pendant au moins 30 minutes. Cela devrait donner à l'application suffisamment de temps pour tout enregistrer. Une fois dans l'application, sélectionnez Wakelocks partiel et voyez quelle application est la plus dommageable.

Dans le résumé principal du BBS, appuyez sur «Résumé» pour voir toutes les options.

Appuyez sur «Wakelocks partiels» pour voir tous les wakelocks de votre appareil.

Dans notre cas, le wakelock «LagunaServiceHandler» de Snapchat est le coupable.

Arrêter le Wakelock

Maintenant que nous savons ce qui mange votre batterie, nous pouvons y mettre un terme. Dans notre cas, c'est Snapchat. Quel que soit votre coupable, veillez à rechercher le nom du package de l'application à l'aide de la visionneuse de noms de packages du Play Store, car nous en aurons besoin pour notre commande ADB ci-dessous.

Comme vous avez évidemment déconnecté votre téléphone pour utiliser Better Battery Stats, reconnectez-le à votre ordinateur pour utiliser à nouveau ADB. Encore une fois, vérifiez s'il est correctement connecté avec

 adb devices 

Et entrez dans le shell en utilisant:

 adb shell 

Maintenant, en utilisant le nom du package de votre application cible, envoyez la commande suivante:

 cmd appops set com.android.application WAKE_LOCK ignore 

Bien sûr, vous allez basculer «com.android.application» avec le nom du package de votre application. Dans mon cas:

 cmd appops set com.snapchat.android WAKE_LOCK ignore 

Si vous avez correctement exécuté toutes les étapes, toutes les demandes de réveil par l'application seront ignorées par le système Android. Toutes nos félicitations!


Explication

En termes simples, un réveil en réveil n’est qu’un moyen pour une application de garder le processeur / l’écran / d’autres éléments en veille lorsque le téléphone est inactif afin d’exécuter une tâche d’arrière-plan spécifique. Certaines applications ont légitimement besoin de wakelocks pour fonctionner correctement, mais le problème vient du fait que certaines applications tiennent des wakelocks à plusieurs reprises, sans les abandonner, ou effectuent des tâches réseau excessives / inutiles et des processeurs en tirant parti de ces wakelocks.

Exemple: des applications telles que Snapchat, Facebook, Messenger ou d'autres applications de réseaux sociaux incluent des comportements anormaux. Ce tutoriel est simplement un moyen d'empêcher que ces wakelocks se reproduisent sans désinstaller l'application. Si, toutefois, vous remarquez que l'application cesse de fonctionner correctement après l'utilisation de cette commande ADB, vous pouvez rétablir le fonctionnement d'origine en réexécutant la commande et en remplaçant «ignore» par «autoriser», ou simplement en la désinstallant, puis en la réinstallant. -installer à nouveau l'application.