Perfil de uso da bateria com o Batterystats e o Battery Historian
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Este documento 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, consulte
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. Use o adb para despejar os
dados coletados sobre a bateria 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.
O Batterystats e o Battery Historian são úteis para:
mostrar onde e como os processos estão puxando corrente da bateria;
identificar tarefas do app que podem ser adiadas ou removidas para melhorar
a duração da bateria.
Instalar o Battery Historian
Você pode usar o Docker para instalar o Battery Historian. Para conferir métodos de instalação
alternativos, incluindo criação com base na origem, consulte o
README (em inglês) na
página do projeto no GitHub. Para instalar usando o Docker, siga estas etapas:
Instale o Docker seguindo as instruções no
site. Qualquer
tipo de assinatura funciona,
incluindo uma assinatura pessoal gratuita.
Para confirmar se o Docker foi instalado corretamente, abra a linha de comando e
digite:
docker run hello-world
Se o Docker estiver instalado corretamente, ele vai mostrar 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
Inicie o app Docker Desktop, que é um front-end de GUI para o Docker, antes
de executar a imagem do Battery Historian. Isso vai inicializar as ferramentas do
Docker. O Battery Historian não é executado até que você faça isso pelo menos uma vez.
Execute o Battery Historian na linha de comando durante a primeira
execução. O app Docker Desktop não permite especificar a porta em que o servidor da Web
será executado. Você só pode fazer isso na linha de comando. No entanto, depois que você
executa o contêiner na linha de comando, é criada uma entrada que
permite iniciar o servidor usando a mesma porta do listener
do Docker Desktop.
Execute a imagem do Battery Historian usando o seguinte comando:
docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.1 --port 9999
O Battery Historian usa a porta que você quiser, conforme o especificado em
port_number.
Acesse o Battery Historian no navegador para confirmar se ele está sendo executado. O
endereço varia de acordo com o sistema operacional:
Para Linux e Mac
O Battery Historian está disponível em
http://localhost:port_number.
Para Windows
Depois de iniciado, o Docker vai 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 vai estar disponível em
http://123.456.78.90:port_number.
Em seguida, na página inicial do Battery Historian, você poderá fazer upload e
conferir as estatísticas da bateria.
Figura 1. A página inicial do Battery
Historian.
Coletar dados com o 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 do terminal, encerre o servidor adb em execução com o
seguinte comando:
adb kill-server
Reinicie o adb e confira se há dispositivos conectados com o comando
a seguir.
adb devices
Ele vai listar seu dispositivo, de maneira semelhante ao exemplo de saída a seguir.
Figura 2. Saída de adb devices,
mostrando um dispositivo conectado.
Se nenhum dispositivo for listado, confira se o smartphone está conectado e se a depuração
USB está ativada. Em seguida, encerre e reinicie o adb.
Redefina a coleta de dados da bateria com o seguinte comando:
adb shell dumpsys batterystats --reset
O dispositivo está sempre coletando estatísticas sobre a bateria e outras informações de depuração
em segundo plano. A redefinição apaga dados de coleta anteriores. Se você
não fizer isso, a saída poderá ser muito grande.
Desconecte o dispositivo do computador para que a única corrente
em uso seja a da bateria.
Use o app e execute ações para a coleta de dados. Por
exemplo, desconecte o Wi-Fi e envie dados para a nuvem.
Reconecte o smartphone.
Confira se o smartphone foi reconhecido e execute o seguinte comando:
adb devices
Descarregue todos os dados da bateria com o comando a seguir. Isso pode demorar um
pouco.
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 nos 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 anteriores:
adb bugreport [path/]bugreport.txt
O relatório de bugs pode demorar alguns minutos para ser concluído. Não desconecte o
dispositivo nem cancele o processo antes disso.
Esses arquivos são criados no diretório especificado usando o
argumento de path opcional, assim como o batterystats.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.1 --port 9999
Para conferir seus dados no Battery Historian, abra-o no
navegador. No Mac e Linux, o Battery Historian é executado em
http://localhost:port_number. No Windows, o Battery
Historian é executado em
http://your_IP_address:port_number.
Clique em Browse e escolha o arquivo do relatório de bugs criado acima.
Clique em Submit. O Battery Historian vai abrir um gráfico criado com base
nos dados do Batterystats.
Conferir 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, portanto,
puxando corrente da bateria. O gráfico não mostra a quantidade de bateria
usada pelo componente, apenas se o app está ativo. Os gráficos são organizados por
categoria, sendo uma barra para cada categoria ao longo do tempo, conforme mostrado no
eixo X.
Figura 3. Exemplo de um gráfico do
Battery Historian.
Adicione outras métricas usando a lista suspensa.
Mantenha o ponteiro do mouse sobre o nome da métrica para conferir mais informações sobre
cada uma delas, incluindo uma legenda para as cores usadas no gráfico.
Mantenha o ponteiro do mouse sobre uma barra para conferir informações mais detalhadas sobre a
métrica e as estatísticas da bateria em um ponto específico da linha do tempo.
Outra saída do Batterystats
Confira mais informações do arquivo batterystats.txt na
seção de estatísticas abaixo do gráfico do Battery Historian.
Figura 4. Seção de estatísticas do Battery
Historian.
A guia 1System 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 2App Stats inclui informações sobre
apps específicos. Classifique a lista de apps usando a lista suspensa 3Sort apps by no painel App Selection. Confira
as estatísticas de um app específico usando a
lista suspensa 4.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Profile battery usage with Batterystats and Battery Historian\n\n| **Warning:** Battery Historian is no longer actively maintained; if possible, consider using [system tracing](/topic/performance/tracing), the [Macrobenchmark power metric](/topic/performance/benchmarking/macrobenchmark-metrics#power), or the [Power Profiler](/studio/profile/power-profiler) to get insights into battery performance.\n\nThis document shows the basic setup steps and workflow for the Batterystats tool\nand the Battery Historian script. To learn how to use Battery Historian to\ninspect battery consumption patterns, see [Analyze power use with Battery\nHistorian](/topic/performance/power/battery-historian).\n\nBatterystats is a tool included in the Android framework that collects battery\ndata on your device. You can use [`adb`](/studio/command-line/adb) to dump the\ncollected battery data to your development machine and create a report you can\nanalyze using Battery Historian. Battery Historian converts the report from\nBatterystats into an HTML visualization that you can view in your browser.\n\nBatterystats and Battery Historian are useful for the following:\n\n- Showing you where and how processes are drawing current from the battery.\n- Identifying tasks in your app that can be deferred or removed to improve battery life.\n\n| **Note:** To use Batterystats and Battery Historian, you need a mobile device with [USB debugging](/studio/debug/dev-options) enabled.\n\nInstall Battery Historian\n-------------------------\n\nYou can use Docker to install Battery Historian. For alternative installation\nmethods, including building from source, see the\n[README](https://github.com/google/battery-historian) on the\nproject's GitHub page. To install using Docker, do the following:\n\n1. Install Docker by following the instructions on the\n [Docker website](https://docs.docker.com/desktop). Any\n [subscription](https://docker.com/pricing) type works,\n including a free Personal subscription.\n\n2. To confirm Docker is correctly installed, open the command line and\n enter the following command:\n\n docker run hello-world\n\n If Docker is correctly installed, it displays an output like this: \n\n Unable to find image 'hello-world:latest' locally\n latest: Pulling from library/hello-world\n 78445dd45222: Pull complete\n Digest:\n sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7\n Status: Downloaded newer image for hello-world:latest\n\n Hello from Docker!\n This message shows that your installation appears to be working correctly.\n\n To generate this message, Docker took the following steps:\n 1. The Docker client contacted the Docker daemon.\n 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\n 3. The Docker daemon created a new container from that image which runs the\n executable that produces the output you are currently reading.\n 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal\n\n3. Launch the Docker Desktop app---which is a GUI frontend for Docker---before\n you run the Battery Historian image. Running this initializes the Docker\n tools. Battery Historian doesn't run until you do this at least once.\n\n4. Run Battery Historian from the command line when running it for the first\n time. The Docker Desktop app doesn't let you specify the port to run the web\n server on. You can only do this from the command line. However, after you\n successfully run the container from the command line, an entry is created in\n Docker Desktop, and then you can launch it using the same listener port\n from Docker Desktop.\n\n5. Run the Battery Historian image using the following command:\n\n ```\n docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.1 --port 9999\n ```\n\n Battery Historian uses the port of your choice, as specified using\n \u003cvar translate=\"no\"\u003eport_number\u003c/var\u003e.\n | **Note:** If you're using a Windows machine, you might need to enable virtualization in your BIOS. Check the documentation for your motherboard for more information about how to enable virtualization. If you can run the [Android Emulator](/studio/run/emulator), then virtualization is already enabled.\n6. Navigate to Battery Historian in your browser to confirm it's running. The\n address varies depending on your operating system:\n\n For Linux and Mac\n : Battery Historian is available at\n `http://localhost:`\u003cvar translate=\"no\"\u003eport_number\u003c/var\u003e.\n\n For Windows\n : After you start Docker, it tells you the IP address of the machine it\n is using. For example, if the IP address is 123.456.78.90, Battery\n Historian is available at\n `http://123.456.78.90:`\u003cvar translate=\"no\"\u003eport_number\u003c/var\u003e.\n\n \u003cbr /\u003e\n\n It then displays the Battery Historian start page, where you can upload and\n view battery statistics.\n **Figure 1.** The start page for Battery Historian.\n\nGather data with Batterystats\n-----------------------------\n\nTo collect data from your device using Batterystats and open it in Battery\nHistorian, do the following:\n\n1. Connect your mobile device to your computer.\n\n2. From a Terminal window, shut down your running `adb` server by running the\n following command:\n\n adb kill-server\n\n3. Restart `adb` and check for connected devices by running the following\n command.\n\n adb devices\n\n It lists your device, similar to the following example output.\n **Figure 2.** The output of `adb devices`, showing one connected device\n\n If it doesn't list any devices, make sure your phone is connected and [USB\n debugging](/studio/debug/dev-options#Enable-debugging) is enabled, and then\n stop and restart `adb`.\n4. Reset battery data gathering by running the following command:\n\n adb shell dumpsys batterystats --reset\n\n The device is always collecting Batterystats and other debugging information\n in the background. Resetting erases previous battery collection data. If you\n don't reset, the output can be very large.\n5. Disconnect your device from your computer so that you are only drawing\n current from the device's battery.\n\n6. Use your app and perform actions for which you want to collect data for. For\n example, disconnect from Wi-Fi and send data to the cloud.\n\n7. Reconnect your phone.\n\n8. Make sure your phone is recognized and run the following command:\n\n adb devices\n\n9. Dump all battery data by running the following command. This can take a\n while.\n\n ```\n adb shell dumpsys batterystats \u003e [path/]batterystats.txt\n ```\n\n The `batterystats.txt` file is created in the directory you specify using\n the optional path argument. If you don't specify a path, the file is\n created in your home directory.\n10. Create a report from raw data.\n\n For devices running Android 7.0 and higher:\n :\n\n ```\n adb bugreport [path/]bugreport.zip\n ```\n\n For devices running Android 6.0 and lower:\n :\n\n ```\n adb bugreport [path/]bugreport.txt\n ```\n\n \u003cbr /\u003e\n\n Bugreport can take several minutes to complete. Don't disconnect your\n device or cancel the process until it's complete.\n\n As with `batterystats.txt`, these files are created in the directory you\n specify using the optional \u003cvar translate=\"no\"\u003epath\u003c/var\u003e argument. If you\n don't specify a path, they are created in your home directory.\n\n If it's not already running, run Battery Historian using the following\n command: \n\n ```\n docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.1 --port 9999\n ```\n11. To view your data in Battery Historian, open the Battery Historian in your\n browser. For Mac and Linux, Battery Historian runs at\n `http://localhost:`\u003cvar translate=\"no\"\u003eport_number\u003c/var\u003e. For Windows, Battery\n Historian runs at\n `http://`\u003cvar translate=\"no\"\u003eyour_IP_address\u003c/var\u003e`:`\u003cvar translate=\"no\"\u003eport_number\u003c/var\u003e.\n\n12. Click **Browse** and then choose the bugreport file you created.\n\n13. Click **Submit**. Battery Historian opens a chart created from your\n Batterystats data.\n\nView data with Battery Historian charts\n---------------------------------------\n\nThe Battery Historian chart graphs power-relevant events over time.\n\nEach row shows a colored bar segment when a system component is active and thus\ndrawing current from the battery. The chart doesn't show how much battery is\nused by the component---only whether the app is active. Charts are organized by\ncategory, showing a bar for each category over time, as displayed on the\n*x*-axis of the chart.\n**Figure 3.** Example of a Battery Historian chart.\n\n1. Add additional metrics from the drop-down list.\n2. Hold the pointer over the metric name to see more information about each metric, including a key for the colors used in the chart.\n3. Hold the pointer over a bar to see more detailed information about that metric and the battery stats at a specific point on the timeline.\n\nAdditional Batterystats output\n------------------------------\n\nYou can view additional information from the `batterystats.txt` file in the\nstats section after the Battery Historian chart.\n**Figure 4.** The stats section of Battery Historian.\n\nThe 1 **System Stats** tab includes system-wide\nstatistics, such as cell signal levels and screen brightness. This information\nprovides an overall picture of what's happening with the device. This is\nespecially useful to make sure no external events are affecting your test.\n\nThe 2 **App Stats** tab includes information about\nspecific apps. Sort the list of apps using the 3\n**Sort apps by** drop-down list in the **App Selection** pane. You\ncan select a specific app to view stats for using the\n4 apps drop-down list."]]