Energy Profiler поможет вам определить, где ваше приложение использует больше энергии, чем необходимо.
Energy Profiler отслеживает использование ЦП, сетевого радио и GPS-датчика и отображает визуализацию того, сколько энергии потребляет каждый из этих компонентов. Energy Profiler также показывает возникновение системных событий (блокировки пробуждения, сигналы тревоги, задания и запросы местоположения), которые могут повлиять на потребление энергии.
Energy Profiler не измеряет потребление энергии напрямую. Скорее, он использует модель, которая оценивает потребление энергии для каждого ресурса на устройстве.
Обзор Energy Profiler
Профиль энергии отображается в виде строки в окне профилировщика , когда вы запускаете приложение на подключенном устройстве или эмуляторе Android под управлением Android 8.0 (API 26) или более поздней версии.
Чтобы открыть Energy Profiler, выполните следующие действия:
Выберите «Просмотр» > «Окна инструментов» > «Профилировщик» или нажмите «Профиль». на панели инструментов.
При появлении запроса в диалоговом окне «Выбор цели развертывания» выберите устройство, на котором нужно развернуть приложение для профилирования. Если вы подключили устройство через USB, но не видите его в списке, убедитесь, что у вас включена отладка по USB .
Щелкните в любом месте временной шкалы энергии , чтобы открыть профилировщик энергии.
Когда вы открываете Energy Profiler, он сразу же начинает отображать расчетное потребление энергии вашим приложением. Вы должны увидеть что-то похожее на рисунок 1.
Как показано на рисунке 1, представление Energy Profiler по умолчанию включает следующие временные шкалы:
- Временная шкала событий: показывает действия в вашем приложении по мере их перехода через различные состояния своего жизненного цикла. На этой временной шкале также показано взаимодействие пользователя с устройством, включая события поворота экрана.
- Временная шкала энергопотребления: показывает расчетное энергопотребление вашего приложения.
- Системная временная шкала: указывает системные события, которые могут повлиять на потребление энергии.
Чтобы просмотреть разбивку энергопотребления по ресурсам ЦП, сети и местоположения (GPS), а также соответствующие системные события, наведите указатель мыши на полосу на временной шкале энергопотребления .
Проверяйте системные события: блокировки пробуждения, задания и сигналы тревоги.
Вы можете использовать Energy Profiler для поиска системных событий, которые могут повлиять на потребление энергии, включая блокировку пробуждения, задания и сигналы тревоги:
Блокировка пробуждения — это механизм, позволяющий удерживать процессор или экран включенными, когда в противном случае устройство перешло бы в спящий режим. Например, приложение, воспроизводящее видео, может использовать блокировку пробуждения, чтобы экран оставался включенным, когда пользователь не взаимодействует с устройством. Запрос блокировки пробуждения не является энергоемким действием, но если не снять блокировку пробуждения, экран или процессор могут оставаться включенными дольше, чем необходимо, что может привести к быстрому разряду аккумулятора. Дополнительные сведения см. в руководстве по работе с блокировками пробуждения .
Вы можете использовать сигналы тревоги для регулярного запуска фоновых задач вне контекста вашего приложения. Когда срабатывает сигнал тревоги, он может разбудить устройство и запустить энергоемкий код. Дополнительную информацию см. в руководстве по работе с сигналами тревоги .
Вы можете использовать задания для выполнения действий при определенных условиях, например, когда сеть становится доступной. Вы создаете задания с помощью
JobBuilder
и планируете их с помощьюJobScheduler
. Во многих случаях рекомендуемый подход — использовать задания сJobScheduler
а не сигналы тревоги или блокировки пробуждения.Запросы местоположения используют датчик GPS, который может потреблять значительное количество энергии. Информацию о том, как отправлять запросы на энергоэффективное определение местоположения, см. в разделе Оптимизация местоположения для аккумулятора .
Energy Profiler позволяет легко найти, где ваше приложение использует каждую из этих функций, чтобы вы могли принимать обоснованные решения о том, как каждая из них используется.
Профилировщик энергии отображает полосу с цветовой кодировкой на системной временной шкале под временной шкалой энергопотребления для временного диапазона, когда системное событие активно. Блокировки пробуждения обозначаются красной полосой, задания и сигналы тревоги обозначаются желтой полосой, а события местоположения обозначаются светло-фиолетовой полосой.
На рис. 2 показаны Energy Profiler и редактор кода, открытый для исходного кода, отвечающего за невыпущенную блокировку пробуждения.
- Чтобы открыть панель «Системные события» и отобразить подробную информацию о таких событиях, как блокировка пробуждения, выберите временной диапазон на временной шкале «Энергия» .
- Чтобы открыть панель «Сведения о блокировке пробуждения» и отобразить сведения о конкретной блокировке пробуждения, выберите блокировку пробуждения на панели «Системные события» .
- Чтобы открыть редактор кода и перейти к исходному коду блокировки пробуждения, дважды щелкните запись вызывающего метода в верхней части стека вызовов на панели сведений о блокировке пробуждения .
- Вызов для получения блокировки пробуждения выделяется в редакторе исходного кода.
Инструкции по отображению сведений о других системных событиях по существу такие же, как и для блокировки пробуждения, с информацией, специфичной для каждого типа событий, на панели сведений. Например, на панели «Сведения о задании» показаны стеки вызовов для тех частей кода, где задание запланировано и где оно завершено.