Методика измерения энергопотребления в Android*

Автор: Туан Х. Буи (Tuan H. Bui)

 

 

Общие сведения

Время работы смартфонов и планшетов от аккумулятора является важным показателем удобства использования. Такие устройства, как правило, должны работать от одной зарядки не менее 10 часов в обычном режиме и несколько дней (а то и недель) в режиме ожидания.

Понимание того, как устройство расходует электроэнергию во время работы приложения, поможет разработчикам выбрать оптимальную и экономичную архитектуру.

В данной статье показано, как получить данные об энергопотреблении во время работы приложения.

 

 

 

 

Методика

Операционная система Android предоставляет набор показателей энергопотребления, которые хранятся в файле /sys/class/power_supply/battery/uevent datafile1. Файл данных uevent обновляется драйвером аккумулятора устройства Android. Частота обновлений варьируется от сотых долей секунды до 30-40 секунд. Объем доступной информации зависит от модели устройства. Далее приведены данные, взятые с устройства Motorola Xoom под управлением ОС Android Honeycomb.

 

 

 

 

Событие Motorola Xoom
POWER_SUPPLY_PRESENT Да
POWER_SUPPLY_NAME Да
POWER_SUPPLY_STATUS Да
POWER_SUPPLY_TECHNOLOGY Да
POWER_SUPPLY_VOLTAGE_NOW Да
POWER_SUPPLY_VOLTAGE_AVG Нет
POWER_SUPPLY_CURRENT_NOW Да
POWER_SUPPLY_CURRENT_AVG Да
POWER_SUPPLY_CHARGE_FULL Нет
POWER_SUPPLY_CHARGE_NOW Нет
POWER_SUPPLY_CHARGE_COUNTER Да
POWER_SUPPLY_CAPACITY Да


Расшифровка этих событий приведена ниже:

 

 

 

 

Power Supply Present: сообщает, что аккумулятор установлен. Это событие всегда должно иметь значение 1.
Power Supply Name: имя аккумулятора. Такие имена присваиваются различным устройствам, связанным с подачей энергии, например battery, ac_charger, usb и т. д. Нас в данном случае интересует аккумулятор (battery).
Power Supply Status: показывает, заряжено устройство или нет.
Power Supply Technology: тип аккумулятора. Как правило, используется литий-ионные (Li-Ion) аккумуляторы.
Power Supply Voltage Now: напряжение на аккумуляторе в микровольтах (мкВ). На некоторых устройствах эта величина выражается в милливольтах (мВ).
Power Supply Voltage Avg: среднее значение напряжения на аккумуляторе.
Power_Supply Current Now: сила тока в микроамперах (мкА).
Power Supply Current Avg: среднее значение силы тока на аккумуляторе.
Power Supply Charge Now: уровень заряда на аккумуляторе в микроампер-часах (мкА*ч). Емкость аккумулятора обычно указывается в миллиампер-часах (мА*ч) или в ватт-часах (Вт*ч).
Power Supply Capacity: неизрасходованная емкость аккумулятора в процентах.
Power Supply Charge Full: максимальная энергоемкость аккумулятора. Обычно соответствует полной зарядке (100%).

 


Далее мы рассмотрим различные способы расчета энергопотребления на основе информации, полученной от драйвера аккумулятора.

Когда известны значения напряжения и тока, достаточно просто перемножить их, чтобы получить энергопотребление в ваттах.

 

 

 

 

Сред. потребление = (Сред. напряжение * Сред. ток) / 1e9
Израсходованный заряд = (Сред. ток * Длительность нагрузки) / 1e3
Время работы от аккумулятора = Полная зарядка / Израсходованный заряд


где
Длительность нагрузки измеряется в часах
Сред. потребление выражено в мВт
Израсходованный заряд выражается в мА*ч
Если значение Полная зарядка неизвестно, вместо него можно использовать номинальную емкость аккумулятора, указанную производителем. Номинальная емкость обычно приводится в спецификации, прилагаемой к устройству.


Пример: Для воспроизведения 30-минутного видеоролика на устройстве потребовался средний ток 450 000 микроампер при среднем напряжении 7 200 000 микровольт. Если номинальная емкость аккумулятора составляет 3200 мА*ч, то из приведенных выше формул получаем следующие результаты: среднее энергопотребление 3240 мВт, израсходованный заряд 225 мА*ч и время работы от аккумулятора около 14 часов. Эта верхняя оценка времени работы от аккумулятора при условии, что устройство Android сможет воспроизводить видео до полной разрядки. На практике устройство отключится раньше, когда уровень заряда достигнет минимального порога (обычно это 2-5 %).

Некоторые устройства сообщают только Power_Supply_Capacity и Average_Voltage. В таком случае для расчета энергопотребления нам понадобится номинальная емкость, указанная производителем. Если она известна, то среднее энергопотребление, израсходованный заряд и ожидаемое время работы от аккумулятора вычисляются следующим образом:

 

 

 

 

Израсходованный заряд в проц. = Нач. емкость – Конеч. емкость
Израсходованный заряд = Израсходованный заряд в проц.* Номинальная емкость
Сред. ток = Израсходованный заряд / Длительность нагрузки
Сред. потребление = Сред. напряжение* Сред. ток


Пример: На 30-минутную видеоконференцию израсходовано 15 % заряда при среднем напряжении 7,2 В. Если номинальная емкость равна 3200 мА*ч, средняя утечка тока составляет 960 мА, а среднее энергопотребление - приблизительно 6912 мВт.

Эта методика дает точные результаты только при достаточно продолжительной нагрузке, на которую расходуется значительная доля заряда.

Кроме того, существует еще ряд факторов, которые влияют на энергопотребление устройства и должны учитываться при расчетах. К ним, помимо прочего, относятся:

 

 

 

 

  • Яркость дисплея. В зависимости от настроенной яркости дисплей может потреблять от 1 до 3 Ватт, поэтому при каждом замере показателей она должна быть одинаковой. Кроме того, датчик рассеянного света может изменять яркость дисплея в зависимости от освещения, в связи с чем его необходимо отключать.
  • Фоновые приложения и службы. Перед замером показателей необходимо завершить все второстепенные приложения и службы в диспетчере задач.
  • Такие функции, как Wi-Fi, GPS и BlueTooth, расходуют довольно много энергии. Если тестируемое приложение не использует GPS и BlueTooth, их следует отключить. Однако Wi-Fi отключать нельзя, так как он нужен для функционирования ОС Android.
  • Если тестируемое приложение не использует USB-устройства, то перед началом измерений их необходимо отсоединить.
  • Энергопотребление динамиков сильно зависит от громкости и характера воспроизводимой музыки. Соответственно, для уменьшения расхода рекомендуется использовать наушники и настроить постоянную громкость.
  • При перемещении устройства активируются различные датчики положения и соответствующие им драйверы. Поэтому при измерении энергопотребления не следует без явной необходимости двигать или трогать устройство.

 

 

Выводы

Понимание структуры энергопотребления является первым шагом на пути к энергоэффективности. Для получения достоверных данных о расходе энергии необходимо обеспечить единое тестовое окружение.