Начиная с Android Studio Hedgehog, Power Profiler показывает энергопотребление на устройствах. Вы можете просмотреть эти новые данные в мониторе Power Rails на устройстве (ODPM). Он сегментирует информацию по подсистемам, называемым «Power Rails». Список поддерживаемых подсистем см. в разделе Профилируемые шины питания .
System Trace записывает и отображает данные о энергопотреблении. Это часть профилировщика ЦП. Эти данные помогают вам визуально сопоставить энергопотребление устройства с действиями, происходящими в вашем приложении. Power Profiler позволяет визуализировать эти данные.
![](https://developer.android.google.cn/static/studio/images/power-consumption-power-rails.png?authuser=2&hl=ru)
Профилируемые силовые шины
ODPM сообщает обо всех профилируемых шинах питания и доступен в Android 10 (уровень API 29) и более поздних версиях, а также на Pixel 6 и последующих устройствах Pixel.
Название шины питания | Описание |
---|---|
ЦП большой | Энергия потребляется большим ядром процессора. |
Процессор Маленький | Энергия потребляется маленьким ядром процессора. |
Средний ЦП | Энергия потребляется средним ядром ЦП. |
Камера | Энергия, потребляемая датчиком камеры. |
Сотовая связь | Энергия, потребляемая сотовым датчиком. |
Отображать | Энергия, потребляемая дисплеем. |
GPS | Энергия, потребляемая датчиком GPS. |
графический процессор | Энергия, потребляемая датчиком графического процессора. |
Память | Энергия, потребляемая датчиком оперативной памяти. |
Ядро датчика | Энергия, потребляемая датчиками других устройств. |
УФС (диск) | Энергия, потребляемая датчиком диска. |
WLAN | Энергия, потребляемая датчиком Wi-Fi. |
Устройства, не поддерживающие ODPM, могут предоставлять данные о энергопотреблении через счетчики Кулона и датчик заряда батареи.
Имя | Описание |
---|---|
Емкость | Оставшийся процент заряда батареи (%). |
Заряжать | Оставшийся заряд аккумулятора в микроампер-часах (мкАч). |
Текущий | Мгновенный ток в микроамперах (мкА). |
Примеры сценариев профилирования энергопотребления с помощью Power Profiler
Предположим, вы создаете приложение, которому необходимо загружать ресурсы по сети. Вы хотите понять, как меняется энергопотребление шины питания WLAN при загрузке ресурсов по отдельности, а не при загрузке большого фрагмента.
Сценарий А. Приложение отправляет отдельные сетевые запросы на загрузку ресурсов через WLAN.
![](https://developer.android.google.cn/static/studio/images/assets-over-wlan.png?authuser=2&hl=ru)
Сценарий Б. Приложение отправляет один сетевой запрос на загрузку очень большого ресурса через WLAN.
![](https://developer.android.google.cn/static/studio/images/large-assets-over-wlan.png?authuser=2&hl=ru)
Как показано в предыдущих сценариях, две системные трассировки показывают разные характеристики энергопотребления на шине питания WLAN в зависимости от того, как вы запускаете загрузку.
Несмотря на то, что предыдущий пример представляет собой простой способ измерения энергопотребления в различных сценариях, он демонстрирует процесс, с помощью которого вы можете создавать более сложные A/B-тесты для своего приложения. Эти тесты можно использовать для оптимизации энергопотребления различных функций или разных реализаций одной и той же функции.
Важные примечания
- ODPM измеряет энергопотребление на уровне устройства, а не только для какого-либо приложения. Вы можете сопоставить информацию о энергопотреблении из ODPM с тем, что происходит на переднем или заднем плане вашего приложения. В результате вы можете ожидать появления шума в данных о энергопотреблении в зависимости от того, сколько приложений активно на устройстве во время чтения данных ODPM.
- Power Profiler считывает данные о энергопотреблении из ODPM, который доступен только на Pixel 6 и последующих устройствах Pixel под управлением Android 10 (уровень API 29) и выше.
- Некоторые шины питания могут быть доступны только на некоторых устройствах, поддерживающих ODPM.