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

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

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

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

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

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

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

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

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

  • cluster0 состоит из cpu0-3
  • cluster1 состоит из cpu4-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 .

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

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

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

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