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

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

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

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

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

Устройства с гетерогенными ЦП

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

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

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

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

Имя Описание Пример значения Примечания
окружающий.вкл. Дополнительная мощность используется, когда экран находится в спящем/окружающем/всегда включенном режиме, а не в выключенном. около 100 мА -
экран.включен Дополнительная мощность используется при включении экрана с минимальной яркостью. 200 мА Включает в себя сенсорный контроллер и подсветку дисплея. Яркость 0, а не минимум Android, который обычно составляет 10 или 20%.
экран.полный Дополнительная мощность, используемая при максимальной яркости экрана, по сравнению с экраном при минимальной яркости. 100 мА-300 мА Часть этого значения (основанная на яркости экрана) добавляется к значению screen.on для расчета энергопотребления экрана.
Wi-Fi.включен Дополнительная мощность используется, когда Wi-Fi включен, но не принимает, не передает и не сканирует. 2 мА -
wifi.активный Дополнительная мощность, используемая при передаче или приеме по Wi-Fi. 31 мА -
wifi.scan Дополнительная мощность используется, когда 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 мА -
радио.включено Дополнительная мощность используется, когда сотовая связь включена. Это запись с несколькими значениями, по одному на силу сигнала (нет сигнала, слабый, умеренный, сильный). 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.контроллер.напряжение Среднее рабочее напряжение (мВ) контроллера Bluetooth. -
модем.контроллер.спать Среднее потребление тока (мА) контроллером модема в спящем режиме. 0 мА Эти значения не являются оценочными, а взяты из паспорта контроллера. Если имеется несколько состояний приема, берется среднее значение этих состояний. Если существует несколько состояний передачи, указание значения для каждого состояния передачи поддерживается, начиная с Android 9.
модем.контроллер.бездействует Среднее потребление тока (мА) контроллером модема в режиме ожидания. -
модем.контроллер.rx Среднее потребление тока (мА) контроллером модема при приеме. -
модем.controller.tx Среднее потребление тока (мА) контроллером модема при передаче на разных уровнях радиочастотной мощности. Это многозначная запись с одним значением для каждого уровня мощности передачи. 100 мА, 200 мА, 300 мА, 400 мА, 500 мА
модем.контроллер.напряжение Среднее рабочее напряжение (мВ) контроллера модема. -
wifi.controller.idle Среднее потребление тока (мА) контроллером Wi-Fi в режиме ожидания. - Эти значения не являются оценочными, а взяты из паспорта контроллера. Если имеется несколько состояний приема или передачи, берется среднее значение этих состояний.
wifi.controller.rx Среднее потребление тока (мА) контроллером Wi-Fi при приеме. -
wifi.controller.tx Среднее потребление тока (мА) контроллером Wi-Fi при передаче. -
wifi.контроллер.напряжение Среднее рабочее напряжение (мВ) контроллера Wi-Fi. -
скорость процессора Это запись с несколькими значениями, в которой перечислены все возможные скорости процессора в кГц. 125000 кГц, 250000 кГц, 500000 кГц, 1000000 кГц, 1500000 кГц Количество и порядок записей должны соответствовать записям мА в cpu.active.
cpu.idle Общая мощность, потребляемая системой, когда ЦП (и SoC) находятся в состоянии приостановки работы системы. 3 мА -
процессор.пробуждение Дополнительная мощность используется, когда процессоры находятся в состоянии планирования бездействия (цикл бездействия ядра); система не находится в состоянии приостановки системы. 50 мА Ваша платформа может иметь более одного состояния простоя с разными уровнями энергопотребления; выберите репрезентативное состояние простоя для более длительных периодов простоя планировщика (несколько миллисекунд). Изучите график энергопотребления на своем измерительном оборудовании и выберите образцы, в которых ЦП потребляет меньше всего энергии, отбрасывая образцы с более высокими значениями, в которых ЦП перешел в состояние простоя.
процессор.активный Дополнительная мощность, используемая ЦП при работе на разных скоростях. 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 миллисекунд времени rx и N миллисекунд времени tx; все оставшееся время контроллера отводится под сетевой трафик или приложение Bluetooth.