Como diagnosticar o consumo de bateria no dispositivo Android usando o logcat?


17

Estou enfrentando um problema grave de dreno de bateria na minha ROM personalizada Cyanogenmod oficial. Depois de discuti-lo nos fóruns da comunidade, foi sugerido que eu use o logcat para solucionar o problema.

Problema:
Toda vez que eu desconecto o dispositivo após uma carga completa, ele descarrega a bateria rapidamente. Perde quase 50% em 15 a 20 minutos. Como mencionado acima, planejo usar o logcat para tentar capturar o problema. Estou planejando executar adb logcatimediatamente após desconectar o telefone da energia. No entanto, eu usei o logcat no passado e achei muito difícil extrair dados específicos da saída grande. Eu já passei por página logcat ajuda oficial e Leitura e Escrita Logs para ver se eu poderia encontrar algo útil, mas eu não poderia encontrar uma solução para o meu problema.

Questão:

  • Existe alguma maneira de usar filtros ou algum outro recurso em que eu possa limitar a saída do logcat às estatísticas relacionadas apenas ao uso da bateria?
  • Algo como pode adb shell dumpsys batterystats > batterystats.txtser de melhor utilidade para mim? Se sim, como usá-lo para obter o que quero?

Gráfico da bateria1 O padrão de uso não mostra nada Gráfico de bateria 2

ATUALIZAÇÃO: O
BatteryStats para meu dreno agora pode ser encontrado aqui em Patebin. Também esta é a minha tabela do historiador da bateria:
Gráfico do historiador da bateria



1
No gráfico de descarga, prefiro assumir uma bateria defeituosa aqui do que um aplicativo (especialmente se sempre acontecer dessa maneira). Talvez você tente uma bateria nova (desde que o dispositivo suporte a substituição)?
Izzy

Eu acho que o problema está com a bateria, não com um aplicativo. Tente emprestar a bateria de alguém com o mesmo dispositivo e teste se o mesmo erro ocorre com a bateria mais nova. Caso contrário, você apenas precisará obter uma bateria nova. Se ainda assim, eu acho que ainda não é por causa de um aplicativo - para consumir tanta bateria, seria necessário ativar o GPS, ter tráfego de rede pesado e realizar processos complexos ao mesmo tempo.
Namnodorel 26/03

@ Namnodorel, infelizmente, é uma bateria não removível. Também acho que não é devido a nenhum aplicativo. É um vazamento na ROM ou outra coisa. Estou assumindo que não há problema na bateria porque, como eu disse, uma vez que recarrego se depois de soltar, ele funciona perfeitamente: |
theHeman 27/03

As baterias que estão ficando ruins podem ser inconsistentes às vezes. A bateria do meu Galaxy S6 está acabando lentamente, e alguns dias são melhores, alguns dias são piores. Meu dreno não é tão significativo quanto o seu, mas acredito que não seja devido a um aplicativo. Você já tentou executar o telefone no modo de segurança? Você já tentou uma redefinição de fábrica (por mais terrível e lamentável que seja para executar e se recuperar)?
Kaizerwolf

Respostas:


1

Tem certeza de que nenhum aplicativo está drenando sua bateria? Você pode descobrir isso inicializando o telefone no modo de segurança. Leia Como inicializar o telefone no modo de segurança para obter instruções. Se a bateria não descarregar no modo de segurança, tente desinstalar os aplicativos que você instalou depois de começar a ver esse comportamento estranho. Se você não conseguir descobrir qual aplicativo é, tente redefini-lo de fábrica. Além disso, se a bateria estiver drenando tão rapidamente, pode ser uma bateria defeituosa.


Bem, sugestão geral é bom, mas ele realmente não responder à pergunta real (o uso da bateria diagnóstico usando logcat)
Andrew T.

@AndrewT. De um modo geral, você está correto. Mas, considerando que o OP deseja resolver o problema, corrigi-lo para o logcat está de alguma forma tornando-o um problema XY (em limites). Portanto, embora não seja 100% adequado à pergunta "literalmente", eu diria que ela se encaixa no problema e oferece uma abordagem para resolvê-lo.
Izzy

0

Existe alguma maneira de usar filtros ou algum outro recurso em que eu possa limitar a saída do logcat às estatísticas relacionadas apenas ao uso da bateria?

Certo. A maneira mais fácil é usar o monitor do dispositivo no Android Studio. A maneira mais complexa é usar a interface da linha de comandos para adb logcat (ela usa a ANDROID_LOG_TAGS env var). Cf documentação da Ferramenta de Linha de Comando do logcat em developer.android.com.

Pode algo como o adb shell dumpsys batterystats> batterystats.txt ser mais útil para mim? Se sim, como usá-lo para obter o que quero?

O consumo de bateria ocorre principalmente devido a algumas condições inesperadas (erros ao conduzir aplicativos para fazer um loop infinito, dispositivos mal detectados tornam o acesso sub-ideal, por exemplo, lendo byte por byte em vez de Mb por Mb, etc.). Você deve usar a capacidade de filtragem do adb logcat para encontrar essas condições inesperadas. Mas esteja avisado de que essas ferramentas são usadas principalmente por desenvolvedores de aplicativos ou mesmo de plataformas, e às vezes pode ser um pouco complexo, porém, interpretar esses logs. No entanto, 100% dos caras que conseguiram, tentaram ;-)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.