Профилировщик мощности

Начиная с Android Studio Hedgehog, Power Profiler показывает энергопотребление на устройствах. Вы можете просмотреть эти новые данные в мониторе Power Rails на устройстве (ODPM). Он сегментирует информацию по подсистемам, называемым «Power Rails». Список поддерживаемых подсистем см. в разделе Профилируемые шины питания .

System Trace записывает и отображает данные о энергопотреблении. Это часть профилировщика ЦП. Эти данные помогают вам визуально сопоставить энергопотребление устройства с действиями, происходящими в вашем приложении. Power Profiler позволяет визуализировать эти данные.

Рисунок 1. Пример энергопотребления на разных шинах питания.

Профилируемые силовые шины

ODPM сообщает обо всех профилируемых шинах питания и доступен в Android 10 (уровень API 29) и более поздних версиях, а также на Pixel 6 и последующих устройствах Pixel.

Таблица 1. Ожидается, что наличие отдельных шин питания будет меняться в зависимости от используемого устройства.
Название шины питания Описание
ЦП большой Энергия потребляется большим ядром процессора.
Процессор Маленький Энергия потребляется маленьким ядром процессора.
Средний ЦП Энергия потребляется средним ядром ЦП.
Камера Энергия, потребляемая датчиком камеры.
Сотовая связь Энергия, потребляемая сотовым датчиком.
Отображать Энергия, потребляемая дисплеем.
GPS Энергия, потребляемая датчиком GPS.
графический процессор Энергия, потребляемая датчиком графического процессора.
Память Энергия, потребляемая датчиком оперативной памяти.
Ядро датчика Энергия, потребляемая датчиками других устройств.
УФС (диск) Энергия, потребляемая датчиком диска.
WLAN Энергия, потребляемая датчиком Wi-Fi.

Устройства, не поддерживающие ODPM, могут предоставлять данные о энергопотреблении через счетчики Кулона и датчик заряда батареи.

Таблица 2. Данные о энергопотреблении.
Имя Описание
Емкость Оставшийся процент заряда батареи (%).
Заряжать Оставшийся заряд аккумулятора в микроампер-часах (мкАч).
Текущий Мгновенный ток в микроамперах (мкА).

Примеры сценариев профилирования энергопотребления с помощью Power Profiler

Предположим, вы создаете приложение, которому необходимо загружать ресурсы по сети. Вы хотите понять, как меняется энергопотребление шины питания WLAN при загрузке ресурсов по отдельности, а не при загрузке большого фрагмента.

Сценарий А. Приложение отправляет отдельные сетевые запросы на загрузку ресурсов через WLAN.

Рисунок 2. Отдельные сетевые запросы на загрузку ресурсов через WLAN.

Сценарий Б. Приложение отправляет один сетевой запрос на загрузку очень большого ресурса через WLAN.

Рисунок 3. Отдельные сетевые запросы на загрузку очень большого ресурса через WLAN.

Как показано в предыдущих сценариях, две системные трассировки показывают разные характеристики энергопотребления на шине питания WLAN в зависимости от того, как вы запускаете загрузку.

Несмотря на то, что предыдущий пример представляет собой простой способ измерения энергопотребления в различных сценариях, он демонстрирует процесс, с помощью которого вы можете создавать более сложные A/B-тесты для своего приложения. Эти тесты можно использовать для оптимизации энергопотребления различных функций или разных реализаций одной и той же функции.

Важные примечания

  • ODPM измеряет энергопотребление на уровне устройства, а не только для какого-либо приложения. Вы можете сопоставить информацию о энергопотреблении из ODPM с тем, что происходит на переднем или заднем плане вашего приложения. В результате вы можете ожидать появления шума в данных о энергопотреблении в зависимости от того, сколько приложений активно на устройстве во время чтения данных ODPM.
  • Power Profiler считывает данные о энергопотреблении из ODPM, который доступен только на Pixel 6 и последующих устройствах Pixel под управлением Android 10 (уровень API 29) и выше.
  • Некоторые шины питания могут быть доступны только на некоторых устройствах, поддерживающих ODPM.