Jak zdiagnozować zużycie baterii na urządzeniu z Androidem za pomocą LogCat?

17

W mojej oficjalnej pamięci ROM Cyanogenmod napotkałem poważny problem z rozładowaniem baterii. Po omówieniu tego na forach społeczności zasugerowano użycie logcata do rozwiązania problemu.

Problem:
Za każdym razem, gdy odłączam urządzenie po całkowitym naładowaniu, bateria szybko się rozładowuje. Traci prawie 50% w ciągu 15-20 minut. Jak wspomniano powyżej, planuję użyć logcat, aby spróbować uchwycić problem. Planuję uruchomić adb logcatnatychmiast po odłączeniu telefonu od zasilania. Jednak w przeszłości korzystałem z logcata i bardzo trudno było mi wyodrębnić określone dane z dużej wydajności. Przeszedłem już oficjalną stronę pomocy logcat oraz czytanie i zapisywanie dzienników, aby sprawdzić, czy mogę znaleźć coś przydatnego, ale nie mogłem znaleźć rozwiązania mojego problemu.

Pytanie:

  • Czy w ogóle można użyć filtrów lub innej funkcji, w której mogę ograniczyć dane wyjściowe logcat do statystyk związanych tylko z zużyciem baterii?
  • Czy coś takiego może adb shell dumpsys batterystats > batterystats.txtbyć dla mnie lepsze? Jeśli tak, w jaki sposób mogę go użyć, aby uzyskać to, czego chcę?

Wykres baterii 1 Wzorzec użycia nic nie pokazuje Wykres baterii 2

AKTUALIZACJA:
BatteryStats dla mojego drenażu można teraz znaleźć tutaj w Patebin. To także moja tabela historii akumulatorów:
Tabela historii akumulatorów

theHeman
źródło
1
Na podstawie wykresu rozładowania wolę założyć tutaj wadliwą baterię niż aplikację (zwłaszcza jeśli zawsze tak się dzieje). Może wypróbujesz nową baterię (pod warunkiem, że Twoje urządzenie obsługuje wymianę)?
Izzy
Myślę, że problem dotyczy baterii, a nie aplikacji. Spróbuj pożyczyć baterię od kogoś z tym samym urządzeniem i sprawdź, czy ten sam błąd występuje w przypadku nowej baterii. Jeśli tak się nie stanie, będziesz musiał po prostu zdobyć nową baterię. Jeśli nadal tak jest, nadal nie sądzę, że dzieje się tak z powodu aplikacji - aby rozładować tak dużo baterii, musiałby aktywować GPS, mieć duży ruch sieciowy i wykonywać złożone procesy jednocześnie.
Namnodorel
@Namnodorel niestety jest to niewymienna bateria. Myślę też, że nie jest to spowodowane żadną aplikacją. To albo wyciek z pamięci ROM, albo coś innego. Zakładam, że nie ma problemu z akumulatorem, ponieważ, jak powiedziałem, po naładowaniu, jeśli po upuszczeniu działa idealnie: |
theHeman
Baterie, które się psują, mogą czasami być niespójne. Bateria mojego Galaxy S6 powoli umiera, a niektóre dni są lepsze, inne są gorsze. Mój drenaż nie jest tak znaczący jak twój, ale uważam, że nie jest to spowodowane aplikacją. Czy próbowałeś uruchomić telefon w trybie awaryjnym? Czy próbowałeś przywrócić ustawienia fabryczne (tak okropne i niefortunne, jak mają do wykonania i powrotu do zdrowia)?
Kaizerwolf,

Odpowiedzi:

1

Czy na pewno nie jest to żadna aplikacja, która rozładowuje akumulator? Możesz to sprawdzić, uruchamiając telefon w trybie awaryjnym. Przeczytaj instrukcje uruchamiania telefonu w trybie awaryjnym . Jeśli bateria nie wyczerpuje się w trybie awaryjnym, spróbuj odinstalować aplikacje zainstalowane po zobaczeniu tego dziwnego zachowania. Jeśli nie możesz dowiedzieć się, która to aplikacja, spróbuj ją zresetować do ustawień fabrycznych. Ponadto, jeśli akumulator rozładowuje się tak szybko, równie dobrze może to być uszkodzony akumulator.

Sakethram
źródło
Cóż, ogólna sugestia jest dobra, ale tak naprawdę nie odpowiada na prawdziwe pytanie (zdiagnozuj zużycie baterii za pomocą logcat)
Andrew T.
@AndrewT. Mówiąc ogólnie, masz rację. Ale biorąc pod uwagę, że OP chce rozwiązać problem, ustawienie go na logcat sprawia, że ​​jest to problem XY (w granicach). Więc choć nie w 100% pasuje do pytania „dosłownie”, powiedziałbym, że pasuje do problemu i oferuje podejście do jego rozwiązania.
Izzy
0

Czy w ogóle można użyć filtrów lub innej funkcji, w której mogę ograniczyć dane wyjściowe logcat do statystyk związanych tylko z zużyciem baterii?

Pewnie. Łatwiejszym sposobem jest użycie monitora urządzenia z Android Studio. Bardziej złożonym sposobem jest użycie interfejsu wiersza poleceń do adb logcat (używa env var ANDROID_LOG_TAGS). Por. Dokumentacja narzędzia wiersza polecenia logcat na developer.android.com.

Czy coś takiego jak adb shell dumpsys batterystats> batterystats.txt może być dla mnie lepsze? Jeśli tak, w jaki sposób mogę go użyć, aby uzyskać to, czego chcę?

Rozładowanie baterii wynika głównie z pewnych nieoczekiwanych warunków (błędy podczas nieskończonego zapętlania aplikacji, źle wykryte urządzenia uzyskujące dostęp do suboptymalnych, np. Bajt odczytu na bajt zamiast Mb na Mb itp.). Powinieneś użyć możliwości filtrowania adb logcat, aby znaleźć takie nieoczekiwane warunki. Ale ostrzegam, że takie narzędzia są używane głównie przez deweloperów aplikacji, a nawet platform, a interpretacja takich dzienników może być czasem trochę skomplikowana. Jednak 100% facetów, którym się udało, próbowało ;-)

Rémi Cohen-Scali
źródło