Производители устройств должны предоставить профиль мощности компонента в /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. |
модем.контроллер.холостой режим | Среднее потребление тока (мА) контроллера модема в режиме ожидания. | - | |
модем.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 система собирает данные сканирования с низким энергопотреблением (LE) и сетевой трафик Bluetooth (например, RFCOMM и L2CAP) и связывает эти действия с инициирующим приложением. Сканирование Bluetooth связано с приложением, которое инициировало сканирование, а пакетное сканирование — нет (а вместо этого связано с приложением Bluetooth). Для сканирования приложения в течение N миллисекунд стоимость сканирования составляет N миллисекунд времени приема и N миллисекунд времени передачи; все оставшееся время контроллера отводится сетевому трафику или приложению Bluetooth.