Este tutorial mostra as etapas básicas de configuração e o fluxo de trabalho da ferramenta Batterystats e do script Battery Historian. Para aprender a usar o Battery Historian para inspecionar padrões de consumo de bateria, leia Analisar o consumo de energia com o Battery Historian.
O Batterystats é uma ferramenta incluída no framework do Android que coleta dados da bateria do seu dispositivo. Você pode usar o adb para despejar os dados da bateria coletados na sua máquina de desenvolvimento e criar um relatório que pode ser analisado usando o Battery Historian. O Battery Historian converte o relatório do Batterystats em uma visualização HTML que pode ser aberta no navegador.
Indicações de uso:
- Mostrar onde e como os processos estão puxando corrente da bateria.
- Identificar tarefas no seu app que podem ser adiadas ou até removidas para melhorar a duração da bateria.
Instalar o Battery Historian
A forma mais fácil de instalar o Battery Historian é usando o Docker. Para ver métodos de instalação alternativos, incluindo a criação a partir da fonte, consulte o arquivo Read Me na página do GitHub do projeto (link em inglês). Para fazer a instalação usando o Docker, siga as seguintes etapas:
Instale o Docker Community Edition seguindo as instruções no site do Docker (link em inglês).
Para confirmar que o Docker foi instalado corretamente, abra a linha de comando e insira o seguinte comando:
docker run hello-world
Se o Docker estiver instalado corretamente, você verá uma saída como esta:
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 78445dd45222: Pull complete Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal
Execute a imagem do Battery Historian usando o seguinte comando:
docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
O Battery Historian usará a porta de sua escolha, conforme o que for especificado usando
port_number
.Vá até o Battery Historian no navegador para confirmar se ele está sendo executado. O endereço varia de acordo com seu sistema operacional:
- Para Linux e Mac
- O Battery Historian está disponível em
http://localhost:port_number
. - Para Windows
- Depois de iniciar o Docker, ele informará o endereço IP da máquina que está
sendo usada. Por exemplo, se o endereço IP for 123.456.78.90,
o Battery Historian estará disponível em
http://123.456.78.90:port_number
Figura 1. Página inicial do Battery Historian.
Coletar dados com Batterystats
Para coletar dados do seu dispositivo usando o Batterystats e abri-los no Battery Historian, faça o seguinte:
Conecte seu dispositivo móvel ao computador.
Em uma janela de Terminal, desative seu servidor adb em execução.
adb kill-server
Reinicie o adb e verifique se há dispositivos conectados.
adb devices
Seu dispositivo estará na lista, como a saída de exemplo abaixo.
Figura 2. Saída de adb devices
, mostrando um dispositivo conectadoCaso não esteja vendo nenhum dispositivo, verifique se o smartphone está conectado e se a depuração USB está ativada e, em seguida, desative e reinicie o adb.
Redefina a coleta de dados da bateria.
adb shell dumpsys batterystats --reset
O dispositivo sempre está coletando estatísticas sobre a bateria e outras informações de depuração em segundo plano. A redefinição apaga os dados antigos sobre a bateria. Se você não fizer a redefinição, a saída será enorme.
Desconecte seu dispositivo do computador para que a única corrente sendo utilizada seja a da bateria do dispositivo.
Use seu app e execute ações sobre as quais você gostaria de receber dados. Por exemplo, desconecte o dispositivo do Wi-Fi e envie dados para a nuvem.
Reconecte seu smartphone.
Verifique se o smartphone foi reconhecido:
adb devices
Copie todos os dados da bateria. Isso pode demorar um pouco:
adb shell dumpsys batterystats > [path/]batterystats.txt
O arquivo
batterystats.txt
será criado no diretório especificado usando o argumento de caminho opcional. Se você não especificar um caminho, o arquivo será criado no seu diretório inicial.Crie um relatório com base em dados brutos.
- Para dispositivos com o Android 7.0 e versões mais recentes:
-
adb bugreport [path/]bugreport.zip
- Para dispositivos com o Android 6.0 e versões anteriores:
-
adb bugreport [path/]bugreport.txt
O relatório de bugs pode demorar alguns minutos para ser concluído. Não desconecte seu dispositivo nem cancele o processo até que ele esteja concluído.
Esses arquivos são criados no diretório especificado usando o argumento de
path
opcional, assim como obatterystats.txt
descrito acima. Se você não especificar um caminho, eles serão criados no seu diretório inicial.Execute o Battery Historian usando o comando a seguir, caso ele ainda não esteja em execução:
docker --run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
Para ver seus dados no Battery Historian, abra-o no navegador. Para Mac e Linux, o Battery Historian é executado em
http://localhost:port_number
. Para Windows, o Battery Historian é executado emhttp://your_IP_address:port_number
.Clique em Procurar e escolha o arquivo do relatório de bug criado acima.
Clique em Enviar. O Battery Historian abrirá um gráfico criado com base nos dados do Batterystats.
Ver dados com gráficos do Battery Historian
Dados relevantes relacionados ao consumo de energia ao longo do tempo são incluídos nos gráficos do Battery Historian.
Cada linha mostra um segmento de barra colorida quando um componente do sistema está ativo e, por esse motivo, está puxando corrente da bateria. O gráfico não mostra a quantidade de bateria utilizada pelo componente. Ele só mostra que o app estava ativo. Os gráficos são organizados por categoria, mostrando uma barra para cada categoria ao longo do tempo, conforme mostrado no eixo X do gráfico.

- Adicione outras métricas pela lista suspensa.
- Passe o cursor sobre os ícones de informação para ver mais dados sobre cada métrica, incluindo uma legenda para as cores usadas no gráfico.
- Passe o cursor sobre uma barra para ver informações mais detalhadas sobre essa métrica e as estatísticas da bateria em um ponto específico da linha do tempo.
Outra saída do Batterystats
Você pode ver mais informações do arquivo batterystats.txt
na
seção de estatísticas abaixo do gráfico do Battery Historian.

A guia 1 System Stats inclui estatísticas de todo o sistema, como níveis de sinal de celular e brilho da tela. Essas informações fornecem um panorama geral do que está acontecendo no dispositivo. Isso é especialmente útil para garantir que nenhum evento externo está afetando seu teste.
A guia 2 App Stats inclui informações sobre apps específicos. Classifique a lista de apps usando a lista suspensa 3 Sort apps by no painel "App Selection" à esquerda. É possível visualizar as estatísticas de um app específico usando a lista suspensa 4 abaixo.