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

Производители устройств должны предоставить профиль энергопотребления компонента в файле /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%.
screen.full При максимальной яркости экрана потребляется больше энергии по сравнению с минимальной яркостью. 100 мА-300 мА Часть этого значения (в зависимости от яркости экрана) добавляется к значению screen.on для вычисления энергопотребления экрана.
wifi.on Дополнительная мощность, потребляемая при включенном Wi-Fi, но не при приеме, передаче или сканировании. 2 мА -
wifi.active Дополнительная мощность, потребляемая при передаче или приеме данных по Wi-Fi. 31 мА -
wifi.scan Дополнительная мощность расходуется при сканировании точек доступа Wi-Fi. 100 мА -
аудио Дополнительная мощность, потребляемая при декодировании/кодировании аудиосигнала с помощью цифрового сигнального процессора (DSP). около 10 мА Используется для цифровой обработки звука (DSP).
видео Дополнительная мощность потребляется при декодировании видео с помощью цифрового сигнального процессора (DSP). около 50 мА Используется для цифровой обработки видеосигнала.
camera.avg Среднее энергопотребление подсистемы камеры для типичного приложения камеры. 600 мА Это приблизительная оценка для приложения, работающего в режиме предварительного просмотра и делающего примерно 10 снимков в полном разрешении в минуту.
камера.фонарик Средняя мощность, потребляемая модулем вспышки камеры во включенном состоянии. 200 мА -
gps.signalqualitybased Дополнительная мощность, потребляемая GPS в зависимости от уровня сигнала. Это многозначный параметр, по одному значению для каждого уровня сигнала, от самого слабого до самого сильного. 30 мА, 10 мА -
gps.on Дополнительная мощность, потребляемая при получении сигнала GPS. 50 мА -
радио.актив Дополнительная мощность, потребляемая при передаче/приёме сигнала сотовой связи. 100 мА-300 мА -
радио.сканирование Дополнительная мощность, потребляемая при передаче сигнала сотовой связи на вышку. 1,2 мА -
радио.вкл Дополнительная мощность, потребляемая при включенном сотовом модуле. Это многозначный параметр, по одному значению для каждого уровня сигнала (нет сигнала, слабый, умеренный, сильный). 1,2 мА Некоторые радиомодули увеличивают мощность сигнала, когда ищут базовую станцию ​​сотовой связи и не обнаруживают сигнала. Значения могут оставаться неизменными или уменьшаться с увеличением мощности сигнала. Если вы укажете только одно значение, оно будет использоваться для всех уровней мощности. Если вы укажете два значения, первое будет использоваться при отсутствии сигнала, второе — при всех остальных уровнях мощности и так далее.
bluetooth.controller.idle Среднее потребление тока (мА) контроллером Bluetooth в режиме ожидания. - Эти значения не являются приблизительными, а взяты из технической документации контроллера. Если имеется несколько состояний приема или передачи, берется среднее значение этих состояний. Кроме того, система теперь собирает данные для сканирования в режиме низкого энергопотребления (LE) и Bluetooth .

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

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

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