API по управлению энергией в Android может вызвать повышенный ее расход

в 8:52, , рубрики: android, api, Блог компании «Apps4All», разработка, Разработка под android, управление питанием, метки: , , ,

Исследователи из Университета Пердью, занимающиеся вопросами энергетической эффективности работы приложений в Android (недавно они показали, что до 75% потребления энергии приложением относится к процессам показа рекламы в нем), выяснили, что многие приложения неправильно используют API по управлению питанием (wakelock).

Wakelock API в Android был создан для приложений, которым необходима работа процессов даже в тот момент, когда телефон находится в режиме ожидания. Например, почтовой программе нужно автоматически соединяться с сервером для проверки обновлений.

Однако профессор И. Чарли Ху отметил, что «программисты всего лишь люди, и когда они делают ошибки при использовании этого API, батарея может кончиться всего за несколько часов». Ученые назвали это «энергетическим багом отсутствия сна» (no-sleep energy bugs) — фактически он не дает устройству переходить в режим сна и оставляет его все время включенным.

«Вы не видите никакой разницы», — говорит профессор. «Вы кладете телефон в карман и думаете, что все прекрасно. Вы достаете его, а батарея уже умерла».

В ходе исследования они проверили 187 приложений и обнаружили такую ошибку у 42 программ. Это меньше четверти, однако каждое из них может вызвать существенные проблемы с потреблением энергии у смартфона.

Так как команда ученыз американская, а не британская, они не только указала на проблему, но и предложила решение — они модифицировали компилятор так, что он может определить наличие такой ошибки в коде. Его представят на конференции MobiSys 2012, которая пройдет в конце июня.

Автор: HugC

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js