Как Android измеряет энергию, используемую отдельным аппаратным компонентом? Как Android измеряет энергию, используемую каждым отдельным процессом?
Как Android измеряет энергию, используемую отдельным аппаратным компонентом? Как Android измеряет энергию, используемую каждым отдельным процессом?
Ответы:
Android отслеживает события, которые влияют на использование батареи, и сохраняет эту информацию в файле batterystats.bin. Некоторые примеры:
Android вычисляет, сколько энергии использует каждое приложение или компонент (например, экран), на основании информации о конфигурации, включенной в устройство производителем.
Не все измеряется, поэтому статистика может иногда вводить в заблуждение, но она становится лучше с каждым выпуском платформы Android.
Статистика батареи может быть сброшена с устройства с помощью:
adb shell dumpsys batterystats
Вот интересный фрагмент поста Дайаны Хэкборн с более подробной информацией о энергопотреблении вэйк-локов :
Существует два способа вычисления мощности от следов блокировки.
На некоторых чипсетах простое удержание блокировки пробуждения должно препятствовать переходу процессора в полный глубокий сон. В указанном сообщении об использовании батареи это дополнительное энергопотребление будет распределено по всем приложениям, содержащим блокировку от пробуждения.
Даже если сама блокировка пробуждения не приводит к энергопотреблению, удерживание блокировки пробуждения в одном приложении может позволить другим приложениям работать и ЦП, если они не будут иначе. (Например, в некоторых приложениях может быть цикл {sleep (1); делать что-то;}, который не будет работать, если не удерживать пробужденные блокировки.) Для решения этой проблемы половина приложений, используемых ЦП, распределяется по обвинению. те, которые держат замки после.