17 votes

Comment diagnostiquer la décharge de la batterie d'un appareil Android à l'aide de logcat ?

J'ai été confronté à un grave problème d'épuisement de la batterie sur ma ROM officielle Cyanogenmod personnalisée. Après en avoir discuté sur les forums de la communauté, il a été suggéré que j'utilise logcat pour résoudre le problème.

Problème :
Chaque fois que je déconnecte mon appareil après une charge complète, il se vide rapidement de sa batterie. Elle perd presque 50% en 15-20 minutes. Comme mentionné ci-dessus, je prévois d'utiliser logcat pour essayer de capturer le problème. J'ai l'intention d'exécuter adb logcat immédiatement après avoir débranché le téléphone de l'alimentation. Cependant, j'ai utilisé logcat dans le passé et j'ai trouvé qu'il était très très difficile d'extraire des données spécifiques de la grande sortie. J'ai déjà parcouru la page d'aide officielle de logcat y Journaux de lecture et d'écriture pour voir si je pouvais trouver quelque chose d'utile, mais je n'ai pas trouvé de solution à mon problème.

Question :

  • Est-il possible d'utiliser des filtres ou une autre fonction qui me permettrait de limiter la sortie de logcat aux statistiques qui sont uniquement liées à l'utilisation de la batterie ?
  • Est-ce que quelque chose comme adb shell dumpsys batterystats > batterystats.txt me serait plus utile ? Si oui, comment puis-je l'utiliser pour obtenir ce que je veux ?

Battery Graph1 Usage Pattern shows nothing Battery Graph 2

UPDATE
BatteryStats pour mon drain peut maintenant être trouvé aquí à Patebin. Voici également mon tableau d'historique des batteries :
Battery Historian Chart

0 votes

1 votes

D'après le graphique de décharge, je pencherais plutôt pour une batterie défectueuse que pour une application (surtout si ça se passe toujours comme ça). Vous pouvez peut-être essayer une nouvelle batterie (à condition que votre appareil permette de la remplacer) ?

0 votes

Je pense que le problème vient de la batterie, pas d'une application. Essayez d'emprunter la batterie de quelqu'un qui possède le même appareil et vérifiez si la même erreur se produit avec la nouvelle batterie. Si ce n'est pas le cas, vous devrez vous procurer une nouvelle batterie. Si c'est toujours le cas, je ne pense toujours pas que ce soit à cause d'une application - pour vider autant de batterie, il faudrait activer le GPS, avoir un trafic réseau important et effectuer des processus complexes en même temps.

1voto

Sakethram Points 11

Êtes-vous sûr que ce n'est pas une application qui draine votre batterie ? Vous pouvez le découvrir en démarrant votre téléphone en mode sans échec. Lire Comment démarrer votre téléphone en mode sans échec pour les instructions. Si votre batterie ne se vide pas en mode sans échec, essayez de désinstaller les applications que vous avez installées après avoir commencé à observer ce comportement étrange. Si vous ne parvenez pas à déterminer de quelle application il s'agit, essayez de réinitialiser l'appareil. Par ailleurs, si la batterie se vide si rapidement, il se peut très bien qu'elle soit défectueuse.

0 votes

La suggestion générale est bonne, mais elle ne répond pas vraiment à la vraie question (diagnostiquer l'utilisation de la batterie en utilisant logcat).

0 votes

@AndrewT. D'une manière générale, vous avez raison. Mais étant donné que l'OP veut résoudre le problème, le fait de le fixer à logcat en fait en quelque sorte un problème de sécurité. Le problème XY (en limites). Ainsi, bien que ne répondant pas à 100% à la question "littéralement", je dirais que cela correspond au problème et offre une approche pour le résoudre.

0voto

Rémi Cohen-Scali Points 129

Est-il possible d'utiliser des filtres ou une autre fonction permettant de limiter la sortie de logcat aux statistiques qui sont uniquement liées à l'utilisation de la batterie ?

Bien sûr. Le moyen le plus simple est d'utiliser le moniteur de périphérique depuis Android Studio. La méthode la plus complexe consiste à utiliser l'interface de ligne de commande adb logcat (elle utilise la variable d'environnement ANDROID_LOG_TAGS). Cf logcat Outil en ligne de commande sur le site developer.Android.com.

Est-ce que quelque chose comme adb shell dumpsys batterystats > batterystats.txt peut être d'une meilleure utilité pour moi ? Si oui, comment puis-je l'utiliser pour obtenir ce que je veux ?

L'épuisement de la batterie est principalement dû à des conditions inattendues (erreurs conduisant les applications à tourner en boucle à l'infini, périphériques mal détectés rendant l'accès sous-optimal, par exemple en lisant octet par octet au lieu de Mb par Mb, etc). Vous devriez utiliser la capacité de filtrage de adb logcat pour trouver de telles conditions inattendues. Mais attention, ces outils sont principalement utilisés par les développeurs d'applications ou même de plateformes, et il peut être parfois un peu complexe d'interpréter ces logs. Cependant, 100% des personnes qui ont réussi, ont essayé ;-)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X