Производительность батареи с использованием wakelocks

мое приложение использует шаблон пробуждения Commonsware, чтобы разбудить устройство с частым (5-минутным) повторяющимся интервалом тревоги. Я знаю, что частое пробуждение может быть корнем моей проблемы, но фактическая работа, выполняемая, когда устройство просыпается, минимальна, а код выполняется очень быстро. В определенной версии Android (4.1.2) на определенных устройствах (например, Xperia T) приложение отображается в списке «Настройки»> «Использование батареи» как пользователь с высоким уровнем заряда батареи. Однако во всех других версиях/устройствах, которые я тестировал, приложение не попадает в этот список, даже если я использую более агрессивный интервал в 1 минуту!

Есть ли известная ошибка со статистикой батареи в 4.1.2? Я не могу найти соответствующие отчеты об ошибках. Глядя на исходный код, я вижу, что wakelock выпускается здесь, но статистика батареи обновляется за пределами wakelock здесь. Это ошибка?

Похоже, что в PowerManagerService текущий код, но интересно, исправлена ​​ли эта ошибка?

Кто-нибудь еще испытывает это? Есть идеи, как потыкать систему, чтобы обновить статистику батареи после сброса вейклока?

Дом


person Dom    schedule 25.02.2013    source источник


Ответы (1)


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

Вы можете использовать adb shell dumpsys power, чтобы подтвердить, что WakeLock выпускается, как и ожидалось, на устройствах, которые предоставляют вам этот отчет.

person CommonsWare    schedule 25.02.2013