» F.A.Q.

Улучшение энергосбережения Android-устройств. Часть 2: Режим работы процессора, экрана, «невидимая» активность

Данная статья – продолжение цикла, цель которого – максимально увеличить время автономной работы Android-устройств при помощи программной настройки. На этот раз мы разберемся с режимами работы процессора, энергопотреблением экрана а также попытаемся побороть нежелательную «невидимую» активность.

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

Что ж, приступим. Начнем с изменения частоты и режима работы центрального процессора. Сразу оговоримся, что при неосторожности в ручной настройке частоты работы процессора Android-устройства возможны зависания, нестабильная работа, теоретически – полный выход устройства из строя. Так что любые действия следует совершать предельно осторожно и с понимаем того, что делается. Все современные устройства, и Android-девайсы в том числе автоматически управляют динамикой работы процессора в зависимости от возлагаемых на него нагрузок. Но не всегда изначально это происходит полностью правильно и оптимально, а потому расход заряда аккумуляторной батареи может быть не самым экономным. Таким образом, ручное изменение частоты работы центрального процессора может дать заметный прирост времени автономной работы, особенно это актуально для самых современных устройств, в которых частота центрального, часто четырёхъядерного процессора может достигать 1.5 ГГц и больше. Удобнее всего регулировать частоту работы процессора при помощи программы SetCPU. Для её работы потребуется Root-доступ, как, впрочем, и при любой тонкой настройке операционной системы и ядра. В данном приложении без труда можно настроить изменение частоты процессора по профилям – например, при выключении экрана или при снижении заряда аккумуляторной батареи ниже определенного уровня. Однако снижать частоту процессора для заметной прибавки во времени автономной работы следует хотя бы на 25%, а лучше – еще больше. Незначительные изменения, на 10-15%, могут и не дать заметного результата. Определить же, есть ли проблемы со штатным управлением частотой работы центрального процессора и оценить нагрузку на него на протяжении отрезка времени можно при помощи Android System Info, во вкладке System -> CPU.

Если заметную долю времени занимает работа процессора на высоких частотах, при этом ресурсоёмкие приложения и игры активно не используются, значит работать есть над чем. Стоит обратиться за графиками загрузки центрального процессора, которые могут быть составлены мониторинговыми программами, вроде SystemPanel или PowerTutor. Если процессор не загружается каким-либо процессом или приложением, которые могут повышать его частоту, значит, штатный режим динамического управления частотой центрального процессора работает неправильно. Это можно исправить установкой SetCPU и ручной установкой определенных режимов работы процессора. Подробнее с режимами работы ядра мы разобрались в другом материале, посвященном данной теме. В целом же нужно понимать, что чем ниже средняя частота работы процессора, тем менее отзывчив пользовательский интерфейс Android-устройства и ниже быстродействие, так что подбирать комфортным режим нужно самостоятельно и индивидуально, предварительно протестировав несколько различных предустановок. Для примера лишь приведем, что с 1 ГГц процессором, который установлен в Samsung Galaxy S, удалось добиться следующих результатов: режим ondemand 100-800 МГц увеличил время автономной работы приблизительно на 15-20%, ondemand 100-400 МГц для просмотра фильмов, увеличил это самое время на 30-40%, причем в любом из перечисленных режимов зависаний не наблюдалось.

Теперь давайте поговорим об экране мобильного Android-устройства. Как известно, это один из основных потребителей энергии. Его потребление зависит от таких параметров, как физический размер, разрешающая способность в пикселях, тип матрицы, уровень яркости, а также время включенной подсветки после прекращения активной работы с устройством. На данный момент производители используют такие основные типы матрицы, как IPS, TFT-LCD, SCLCD и OLED (AMOLED или SuperAMOLED). Наиболее экономичными в плане потребления энергии при соблюдении определенных условий, о которых поговорим чуть ниже, являются экраны на основе органических светодиодов SuperAMOLED и их вариации (SuperAMOLED Plus, SuperAMOLED HD). Экономия достигается за счет того, что общая подсветка матрицы отсутствует, светятся сами точки на экране, и, таким образом, для отображения черного цвета необходимые участки экрана просто-напросто отключаются. Так что значительное влияние на энергопотребление оказывает отображаемая на дисплее картинка – чем больше черного цвета и темных оттенков, тем меньше расход заряда аккумуляторной батареи. Для лучшего понимая, что именно происходит, приведем несколько графиков, на которых сравнивается энергопотребление экранов на органических светодиодах и классических жидкокристаллических панелей:

Как видите, в случае, если в вашем устройстве экран на органических светодиодах, то рациональнее использовать тему с преобладанием чёрных и тёмных тонов и температурой цветов выше 6500К:

Желательно свести к минимуму использование белого фона и светлых тонов в программах, применять более тёмные оболочки.

Яркость дисплея также играет немаловажную роль, её уровень заметно связан с временем автономной работы Android-устройства. Средние показатели таковы, что при уровне яркости 10-30% энергопотребление практически не изменяется, при уровне 30-50% — энергопотребление увеличивается на 10-20%, 70-100% — заметно увеличивается энергопотребление, до 50%. Конечно же, это усредненные показатели, и для каждой отдельно взятой модели они могут отличаться. Наибольшую экономию, соответственно, дает значение до 30% яркости – без слишком заметного время удобству использования девайса. В большинстве современных устройств предусмотрена автоматическая регулировка яркости в зависимости от условий внешнего освещения. Естественно, это, с одной стороны, в некоторой степени экономит заряд аккумуляторной батареи в сравнении с постоянным максимальным уровнем яркости, но в то же время, потребление энергии выше, чем при фиксированном значении в 30% — просто потому, что иногда уровень яркости будет подниматься до 80-100%, например, на улице под прямым солнечным светом. Также немаловажную роль играет правильность и скорость срабатывания датчика, который воспринимает информацию об уровне внешнего освещения (иногда время реакции на изменение яркости слишком долгое), а также распорядок дня пользователя (более частое использование мобильного устройства на улице или в помещении и такое прочее). В целом, можно опытным путём определить, что выгоднее, походим несколько дней с автоматической регулировкой, и несколько – с фиксированным установленным уровнем яркости экрана.

Теперь давайте приступим к еще одному очень важному вопросу, решив который, можно заметно увеличить время автономной работы. Мы уже говорили о так называемой «невидимой» активности. Суть её в том, что некоторые приложения и процессы, работающие в фоне, могут «будить» устройство из режима сна, не давая перейти в режим энергосбережения. Это, например, приложения, постоянно «общающиеся» с сетью, вроде различных клиентов для социальных сетей, сервисы мгновенных сообщений, виджеты с прогнозами погоды, музыкальные плееры при прослушивании музыки, программы мониторинга с высокой частотой обновления показателей, приложения с ошибками в программном коде и так далее. Перед применением какого-либо способа устранения «невидимой» активности, советуем для начала просто перезагрузить устройство, особенно если эта активность достаточно значительная с показателем «Running» на уровне до 100%. Если это не помогло, прибегаем к сторонним приложениям.

Устанавливаем SystemPanel. Ставим галку возле «Включить Мониторинг» в Меню -> Настройки. Остальные галки можно поставить по желанию, описание пунктов интуитивно понятно. Таким образом, включается мониторинг активности приложений, а в системной области появляется значок программы. Теперь нужно оставить мобильное устройство в бездействии на некоторое время, лучше и удобнее всего – на ночь. После прошествия отрезка времени, заходим в Меню -> Мониторинг, и нажимаем кнопку «История». На экране будут построены графики. Сверху можно задать интервал вывода информации. Например, если производили мониторинг ночью, можно выставить 8 часов.

Разберемся с графиками.

Зарядка аккумулятора – отображает разряд аккумуляторной батареи.

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

Активность CPU – показывает загрузку процессора за всё время мониторинга, в том числе в режиме сна. При этом, загрузка до 1% системными процессами в режиме сна – это вполне нормально для большинства устройств, а вот больше 1% — лишняя активность, причину которой мы и будем искать. Находясь в «Истории», нажимаем кнопку «График» и выбираем «Топ-приложения». На экране будет отображен список всех приложений и процессов, отсортированный по степени загрузки центрального процессора.

На наиболее активные процессы можно нажать и увидеть информацию о них, внизу – историю потребления энергии в виде графика. Можно нажать кнопку «Сравнить» и увидеть ниже общие графики. То есть, можно сравнить график одного процесса с графиками всех процессов и узнать «вклад в общее дело» по разрядке аккумуляторной батареи. Не забываем, нас интересуют периоды, когда экран устройства был выключен. Данная функция полезна, когда были редкие, но сильные пики активности. При этом такой процесс может быть и не в начале списка «Топ-приложений». Пункт «Системные процессы» разбит на множество мелких, и, при желании, можно поискать названия наиболее активных, чтобы узнать, за что они отвечают, сравнить с активностью таких же процессов на аналогичных устройствах. Для примера, приведем график, показывающий, что Taskkiller проявляет излишнюю активность:

Однако, в целом, это слишком небольшая активность, так что она не приведет к серьёзному расходу энергии. А вот еще один график из данной программы, по которому ясно видно, что MyTracks слишком активно загружает центральный процессор устройства во сне:

Можно установить приложение PowerTutor, которое в реальном времени хорошо отображает энергопотребление программ и процессов в фоне, как суммарно, так и для каждого отдельно взятого приложения:

Также PowerTutor строит графики потребления для каждого приложения, накапливает статистику, что позволяет по всплеску активности на графике центрального процессора в режиме сна вычислить «того, кто не спит», то есть будящий процесс. Потреблению в мВт доверять слишком сильно не стоит, скорее надо оценивать относительные показатели.

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

В данной программе в первую очередь нужно обращать внимание на UTime, который показывает, насколько программа или процесс активна, в том числе «во сне» устройства. Программы, которые имеют высокую частоту обновления, или которые «не засыпают», будут иметь повышенный показатель UTime, который, к тому же, будет быстро расти. Для определения повышен UTime или нет, отталкиваемся от общего UTime системы, то есть возможного максимума. Не следует забывать, что на показатель UTime для процесса «Контакты» или «Набор номера» влияет время разговора, «Клавиатура» — как часто на экране мелькает поле для ввода символов (в том числе, если на рабочем столе установлен виджет поиска).

Также можно воспользоваться «Журналом аккумулятора», в меню по очереди выбрав «Использование CPU», «Частичное пробуждении» — виновники «бессонницы» будут вверху списка.

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

Во-первых, удаляем все виджеты с рабочих столов, программы-значки с информационной строки, также удаляем (а еще лучше – «замораживаем» при помощи Titanium Backup) приложения, которые были установлены после периода, когда «невидимая» активность была нормальной.

Далее, производим сброс к заводским настройкам, то есть wipe. Не забываем сделать резервные копии при помощи всё того же Titanium Backup, форматируем SD-карту средствами операционной системы мобильного устройства. Если после полной очистки и сброса к заводским настройкам «невидимая» активность «угомонилась» — значит, проблема была в установленных приложениях. Логично, восстанавливаем их по одному, и постоянно следим за уровнем «невидимой» активности, пока не вычисляем конкретное приложение, вызывающие проблемы. Если же после сброса уровень «невидимой» активности остался прежним, то пробуем отключить приложения от производителя – они общим сбросом не удаляются. Отключить автозагрузку приложений можно при помощи Autostarts – тогда выбранные программы можно будет запускать только вручную. Можно прибегнуть к уже упомянутой «заморозке» при помощи Titanium Backup «до лучших времен».

Если проделанные действия не привели к желаемому результату, то следует обратить внимание на прошивку и ядро устройства, возможно придется перепрошиться на альтернативную версию (это может быть как самая новая, так и более старая официальная прошивка, или же вовсе кастомная сборка – но в таком случае помните о потере гарантии).

В том случае, если смена прошивки также ничего не дала, то, скорее всего, проблемы аппаратного плана. Полностью заряжаем аппарат, после чего выключаем его на всю ночь, не вынимая аккумуляторную батарею. Утром включаем и проверяем уровень заряда. Саморазряд за ночь не должен превышать 1-3%, и если разряд всё такой же сильный, как перед зарядкой, то проблема точно аппаратная – нужно обратиться в сервисный центр.

Отметим, что в целом, не стоит «ловить» показания индикатора вплоть до 1-2%, и тем более сравнивать их между разными смартфонами или планшетами, и даже между вчерашними и сегодняшними показателями. Величина эта весьма относительна, и может зависеть от большого количества факторов. Главное – создать приблизительное представление о потреблении энергии устройством. В целом же, проделав описанные в данном небольшом цикле статей операции, можно увеличить время автономной работы, в зависимости от устройства, от 30-40 до 150-200% (да, именно, на 200%, то есть в три раза). Желаем вам удачи и подольше пользоваться любимым Android`ом «без розетки»!

Дмитрий Топоренко
2015-07-04 15:10:55
Такие нововведения делают мир чище. Хорошо что есть такие энтузиасты, то ли это отдельные личности, то ли отдельные компании или корпорации, которые адекватно оценивают экологическую ситуацию в мире и такие образом спасают нашу планету. http://autosavingenergy.com/