Измерение значений мощности

Производители устройств должны предоставить профиль мощности компонента в /frameworks/base/core/res/res/xml/power_profile.xml .

Чтобы определить значения профилей мощности, используйте оборудование, которое измеряет мощность, потребляемую устройством, и выполняет различные операции, для которых необходима информация. Измерьте энергопотребление во время этих операций и вычислите значения (при необходимости получая различия от других базовых показателей энергопотребления).

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

Устройства с Bluetooth, модемом и контроллерами Wi-Fi под управлением Android 7.0 и выше могут предоставлять дополнительные значения мощности, полученные из данных чипсета.

Устройства с гетерогенными процессорами

Профиль мощности для устройств с ядрами ЦП гетерогенной архитектуры должен включать следующие дополнительные поля:

  • Общее количество ЦП для каждого кластера (выраженное в cpu.clusters.cores).
  • Скорости ЦП, поддерживаемые каждым кластером.
  • Активное энергопотребление ЦП для каждого кластера.

Чтобы различать активное энергопотребление ЦП и поддерживаемую скорость ЦП для кластеров, добавьте номер кластера к имени массива. Номера кластеров назначаются в порядке ядер ЦП в дереве устройств ядра. Например, в гетерогенной архитектуре с двумя (2) кластерами с четырьмя (4) ядрами:

  • кластер0 состоит из процессора0-3
  • кластер1 состоит из процессоров 4-7

Платформа Android использует эти номера ядер ЦП при чтении статистики из файлов sysfs в: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Пример процессоров и скоростей кластера:

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

Значения мощности

В следующей таблице описаны доступные настройки значений мощности. Чтобы просмотреть пример файла в AOSP, см. power_profile.xml .

Имя Описание Пример значения Примечания
Ambient.on Дополнительная мощность, потребляемая, когда экран находится в режиме сна/окружения/всегда включен, а не выключен. около 100 мА -
экран.он Дополнительная мощность, потребляемая при включении экрана на минимальной яркости. 200 мА В комплект входит сенсорный контроллер и подсветка дисплея. Яркость равна 0, а не минимальному значению Android, которое обычно составляет 10 или 20%.
экран.полный Дополнительная мощность, потребляемая при максимальной яркости экрана, по сравнению с экраном при минимальной яркости. 100 мА-300 мА Часть этого значения (основанная на яркости экрана) добавляется к значению screen.on для расчета энергопотребления экрана.
wifi.on Дополнительная мощность, используемая, когда Wi-Fi включен, но не принимает, не передает и не сканирует. 2 мА -
Wi-Fi.активен Дополнительная мощность, используемая при передаче или приеме через Wi-Fi. 31 мА -
Wi-Fi.сканирование Дополнительная мощность, используемая при поиске точек доступа Wi-Fi. 100 мА -
аудио Дополнительная мощность, используемая при декодировании/кодировании звука через DSP. около 10 мА Используется для звука DSP.
видео Дополнительная мощность, используемая при декодировании видео через DSP. около 50 мА Используется для видео DSP.
камера.avg Среднее энергопотребление подсистемы камеры для типичного приложения камеры. 600 мА Предназначено для приблизительной оценки приложения, выполняющего предварительный просмотр и захватывающего примерно 10 изображений с полным разрешением в минуту.
камера.фонарик Средняя мощность, потребляемая модулем вспышки камеры во включенном состоянии. 200 мА -
GPS.signalqualitybased Дополнительная мощность, используемая GPS, в зависимости от уровня сигнала. Это запись с несколькими значениями, по одному на каждый уровень сигнала, от самого слабого до самого сильного. 30 мА, 10 мА -
gps.on Дополнительная мощность, используемая, когда GPS получает сигнал. 50 мА -
радиоактивный Дополнительная мощность, используемая при передаче/приеме сотовой радиосвязи. 100 мА-300 мА -
радио.сканирование Дополнительная мощность, используемая при пейджинговой связи сотовой связи с вышкой. 1,2 мА -
радио.вкл. Дополнительная мощность, используемая при включенной сотовой связи. Это запись с несколькими значениями, по одному на каждый уровень сигнала (нет сигнала, слабый, умеренный, сильный). 1,2 мА Некоторые радиостанции повышают мощность, когда ищут вышку сотовой связи и не обнаруживают сигнал. Значения могут быть одинаковыми или уменьшаться с увеличением уровня сигнала. Если вы укажете только одно значение, одно и то же значение будет использоваться для всех сильных сторон. Если вы укажете два значения, первое будет использоваться для отсутствия сигнала, второе значение будет использоваться для всех остальных уровней мощности и т. д.
bluetooth.controller.idle Средний ток потребления (мА) контроллера Bluetooth в режиме ожидания. - Эти значения не приблизительные, а взяты из паспорта контроллера. Если имеется несколько состояний приема или передачи, берется среднее значение этих состояний. Кроме того, система теперь собирает данные для сканирования Low Energy (LE) и Bluetooth .

Android 7.0 и более поздних версий больше не используют значения мощности Bluetooth для bluetooth.active (используется при воспроизведении звука через Bluetooth A2DP) и bluetooth.on (используется, когда Bluetooth включен, но находится в режиме ожидания).
bluetooth.controller.rx Средний ток потребления (мА) контроллера Bluetooth при приеме. -
bluetooth.controller.tx Средний ток потребления (мА) контроллера Bluetooth при передаче. -
Bluetooth.контроллер.напряжение Среднее рабочее напряжение (мВ) контроллера Bluetooth. -
модем.контроллер.сон Среднее потребление тока (мА) контроллера модема в спящем режиме. 0 мА Эти значения не приблизительные, а взяты из паспорта контроллера. Если имеется несколько состояний приема, берется среднее значение этих состояний. Если существует несколько состояний передачи, указание значения для каждого состояния передачи поддерживается, начиная с Android 9.
модем.контроллер.idle Средний ток потребления (мА) контроллера модема в режиме ожидания. -
модем.controller.rx Средний ток потребления (мА) контроллера модема при приеме. -
модем.controller.tx Среднее потребление тока (мА) контроллера модема при передаче на разных уровнях радиочастотной мощности. Это запись с несколькими значениями, по одному значению на каждый уровень мощности передачи. 100 мА, 200 мА, 300 мА, 400 мА, 500 мА
модем.контроллер.напряжение Среднее рабочее напряжение (мВ) контроллера модема. -
wifi.controller.idle Средний ток потребления (мА) контроллера Wi-Fi в режиме ожидания. - Эти значения не приблизительные, а взяты из паспорта контроллера. Если имеется несколько состояний приема или передачи, берется среднее значение этих состояний.
wifi.controller.rx Средний ток потребления (мА) контроллера Wi-Fi при приеме. -
wifi.controller.tx Средний ток потребления (мА) контроллера Wi-Fi при передаче. -
Wi-Fi.контроллер.напряжение Среднее рабочее напряжение (мВ) контроллера Wi-Fi. -
скорость процессора Это запись с несколькими значениями, в которой перечислены все возможные скорости процессора в кГц. 125000 кГц, 250000 кГц, 500000 кГц, 1000000 кГц, 1500000 кГц Количество и порядок записей должны соответствовать записям мА в cpu.active.
процессор.в режиме ожидания Общая мощность, потребляемая системой, когда процессоры (и SoC) находятся в состоянии ожидания системы. 3 мА -
процессор.пробуждение Дополнительная мощность, используемая, когда процессоры находятся в состоянии планового простоя (цикл простоя ядра); система не находится в состоянии приостановки работы системы. 50 мА На вашей платформе может использоваться несколько состояний простоя с разными уровнями энергопотребления; выберите репрезентативное состояние простоя для более длительных периодов простоя планировщика (несколько миллисекунд). Изучите график мощности на вашем измерительном оборудовании и выберите образцы, в которых ЦП потребляет минимальное количество энергии, отбросив более высокие образцы, в которых ЦП вышел из режима ожидания.
процессор.активный Дополнительная мощность, используемая процессорами при работе на разных скоростях. 100 мА, 120 мА, 140 мА, 160 мА, 200 мА Значение представляет собой мощность, используемую шинами ЦП при работе на разных скоростях. Установите максимальную скорость в ядре для каждой из разрешенных скоростей и привяжите процессор к этой скорости. Количество и порядок записей соответствуют количеству и порядку записей в cpu.speeds.
процессор.clusters.cores Количество ядер, которые содержит каждый кластер ЦП. 4, 2 Требуется только для устройств с гетерогенной архитектурой ЦП . Количество записей и порядок должны совпадать с количеством записей кластера для cpu.active и cpu.speeds. Первая запись представляет количество ядер ЦП в кластере 0, вторая запись представляет количество ядер ЦП в кластере 1 и так далее.
емкость батареи Общая емкость аккумулятора в мАч. 3000 мАч -

Сканирование с низким энергопотреблением (LE) и Bluetooth

На устройствах под управлением Android 7.0 система собирает данные сканирования Low Energy (LE) и сетевой трафик Bluetooth (например, RFCOMM и L2CAP) и связывает эти действия с инициирующим приложением. Сканирование Bluetooth связано с приложением, инициировавшим сканирование, а пакетное сканирование — нет (а вместо этого связано с приложением Bluetooth). Для сканирования приложения в течение N миллисекунд стоимость сканирования составляет N миллисекунд времени приема и N миллисекунд времени передачи; все оставшееся время контроллера отводится сетевому трафику или приложению Bluetooth.