Профилируйте использование батареи с помощью Batterystats и Battery Historian.

В этом документе показаны основные этапы настройки и рабочий процесс для инструмента Batterystats и сценария Battery Historian. Чтобы узнать, как использовать Battery Historian для проверки структуры потребления батареи, см. раздел Анализ энергопотребления с помощью Battery Historian .

Batterystats — это инструмент, включенный в платформу Android, который собирает данные об аккумуляторе вашего устройства. Вы можете использовать adb , чтобы загрузить собранные данные о батарее на вашу машину разработки и создать отчет, который вы можете проанализировать с помощью Battery Historian. Battery Historian преобразует отчет из Batterystats в HTML-визуализацию, которую вы можете просмотреть в своем браузере.

Batterystats и Battery Historian полезны для следующего:

  • Показывает, где и как процессы потребляют ток от аккумулятора.
  • Определение задач в вашем приложении, которые можно отложить или удалить, чтобы увеличить время автономной работы.

Установить архиватор батареи

Вы можете использовать Docker для установки Battery Historian. Альтернативные методы установки, включая сборку из исходного кода, см. в README на странице проекта GitHub. Чтобы установить с помощью Docker, выполните следующие действия:

  1. Установите Docker, следуя инструкциям на сайте Docker . Подойдет любой тип подписки , включая бесплатную Персональную подписку.

  2. Чтобы убедиться, что Docker установлен правильно, откройте командную строку и введите следующую команду:

    docker run hello-world
    

    Если Docker установлен правильно, он отображает такой вывод:

    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
    
  3. Запустите приложение Docker Desktop, которое представляет собой графический интерфейс для Docker, прежде чем запускать образ Battery Historian. При этом инициализируются инструменты Docker. Battery Historian не запустится, пока вы не сделаете это хотя бы один раз.

  4. Запустите Battery Historian из командной строки при первом запуске. Приложение Docker Desktop не позволяет указать порт для запуска веб-сервера. Вы можете сделать это только из командной строки. Однако после успешного запуска контейнера из командной строки в Docker Desktop создается запись, и затем вы можете запустить его, используя тот же порт прослушивателя из Docker Desktop.

  5. Запустите образ Battery Historian с помощью следующей команды:

    docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.1 --port 9999
    

    Battery Historian использует порт по вашему выбору, указанный с помощью port_number .

  6. Перейдите в Battery Historian в своем браузере, чтобы убедиться, что он работает. Адрес варьируется в зависимости от вашей операционной системы:

    Для Linux и Mac

    Battery Historian доступен по адресу http://localhost: port_number .

    Для Windows

    После запуска Docker он сообщает вам IP-адрес компьютера, который он использует. Например, если IP-адрес — 123.456.78.90, Battery Historian доступен по адресу http://123.456.78.90: port_number .

    Затем отображается стартовая страница Battery Historian, на которой вы можете загружать и просматривать статистику батареи.

    Стартовая страница Battery Historian
    Рисунок 1. Стартовая страница Battery Historian.

Соберите данные с помощью Batterystats

Чтобы собрать данные с вашего устройства с помощью Batterystats и открыть их в Battery Historian, выполните следующие действия:

  1. Подключите мобильное устройство к компьютеру.

  2. В окне терминала закройте работающий сервер adb , выполнив следующую команду:

    adb kill-server
    
  3. Перезапустите adb и проверьте наличие подключенных устройств, выполнив следующую команду.

    adb devices
    

    В нем указано ваше устройство, как показано в следующем примере.

    Вывод устройств adb
    Рисунок 2. Вывод adb devices , показывающий одно подключенное устройство

    Если в списке нет никаких устройств, убедитесь, что ваш телефон подключен и включена отладка по USB , а затем остановите и перезапустите adb .

  4. Сбросьте сбор данных об аккумуляторе, выполнив следующую команду:

    adb shell dumpsys batterystats --reset
    

    Устройство всегда собирает данные о состоянии батареи и другую отладочную информацию в фоновом режиме. При сбросе стираются предыдущие данные сбора данных об аккумуляторе. Если вы не выполните сброс, результат может быть очень большим.

  5. Отключите устройство от компьютера, чтобы получать ток только от аккумулятора устройства.

  6. Используйте свое приложение и выполняйте действия, для которых вы хотите собрать данные. Например, отключиться от Wi-Fi и отправить данные в облако.

  7. Переподключите телефон.

  8. Убедитесь, что ваш телефон распознан, и выполните следующую команду:

    adb devices
    
  9. Сбросьте все данные батареи, выполнив следующую команду. Это может занять некоторое время.

    adb shell dumpsys batterystats > [path/]batterystats.txt
    

    Файл batterystats.txt создается в каталоге, указанном вами с помощью необязательного аргумента пути. Если вы не укажете путь, файл будет создан в вашем домашнем каталоге.

  10. Создайте отчет на основе необработанных данных.

    Для устройств под управлением Android 7.0 и выше:

    adb bugreport [path/]bugreport.zip

    Для устройств под управлением Android 6.0 и более ранних версий:

    adb bugreport [path/]bugreport.txt

    Выполнение отчета об ошибках может занять несколько минут. Не отключайте устройство и не отменяйте процесс до его завершения.

    Как и в случае с batterystats.txt , эти файлы создаются в каталоге, который вы указываете с помощью необязательного аргумента path . Если вы не укажете путь, они будут созданы в вашем домашнем каталоге.

    Если он еще не запущен, запустите Battery Historian с помощью следующей команды:

    docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.1 --port 9999
    
  11. Чтобы просмотреть данные в Battery Historian, откройте Battery Historian в браузере. Для Mac и Linux Battery Historian работает по адресу http://localhost: port_number . В Windows Battery Historian работает по адресу http:// your_IP_address : port_number .

  12. Нажмите «Обзор» , а затем выберите созданный вами файл отчета об ошибке.

  13. Нажмите «Отправить» . Battery Historian открывает диаграмму, созданную на основе ваших данных Batterystats.

Просмотр данных с помощью диаграмм Battery Historian

Диаграмма Battery Historian отображает события, связанные с питанием, с течением времени.

В каждой строке отображается цветной сегмент полосы, когда компонент системы активен и, таким образом, потребляет ток от аккумулятора. На диаграмме не показано, сколько батареи расходует компонент, а показано только, активно ли приложение. Диаграммы организованы по категориям, показывая полосу для каждой категории с течением времени, как показано на оси X диаграммы.

Пример диаграммы Battery Historian
Рисунок 3. Пример диаграммы Battery Historian.
  1. Добавьте дополнительные показатели из раскрывающегося списка.
  2. Наведите указатель на имя показателя, чтобы просмотреть дополнительную информацию о каждом показателе, включая ключ к цветам, используемым на диаграмме.
  3. Наведите указатель на полосу, чтобы просмотреть более подробную информацию об этом показателе и статистике заряда батареи в определенный момент на временной шкале.

Дополнительный вывод Batterystats

Дополнительную информацию можно просмотреть из файла batterystats.txt в разделе статистики после диаграммы Battery Historian.

Раздел статистики в Battery Historian
Рисунок 4. Раздел статистики в Battery Historian.

Вкладка 1 «Статистика системы» содержит общесистемную статистику, такую ​​как уровни сигнала сотовой связи и яркость экрана. Эта информация дает общую картину того, что происходит с устройством. Это особенно полезно, чтобы убедиться, что никакие внешние события не влияют на ваш тест.

Вкладка 2 «Статистика приложений» содержит информацию о конкретных приложениях. Отсортируйте список приложений с помощью раскрывающегося списка «3 Сортировать приложения по» на панели «Выбор приложений» . Вы можете выбрать конкретное приложение для просмотра статистики с помощью раскрывающегося списка из 4 приложений.