Энергопотребление андроид — увеличиваем автономную работу на 50%

Многие привыкли подключать смартфоны к заряднику каждый вечер. Сегодня это норма. Развиваются технологии, оптимизируется Android, производители нашпиговывают свои аппараты hi-end начинкой, но при этом, как будто сговорившись, очень неохотно увеличивают емкость аккумуляторов, издевательски балансируя на том самом уровне автономии в один световой день. Но не будем поднимать тему о заговоре маркетологов, в этой статье мы раскажем об оптимизации того, что имеем, и всех наиболее эффективных и безопасных способах  улучшить энергосбережение смартфона как минимум на 50%.

энергопотребление андроид

ЧАСТЬ 1. ЖЕЛЕЗО

Беспроводные сети и GPS

Запомни: хочешь сэкономить энергию — отключай лишних потребителей, то, чем в данный момент не пользуешься. Например, оставленные включенными беспроводные сети Wi-Fi и Bluetooth постоянно сканируют пространство и ищут доступные точки для подключения или устройства для спарринга; включенная «передача данных» (мобильный интернет) позволяет многочисленным приложениям постоянно «ломиться» в сеть для обновления своих данных и отправки запросов, дополнительно загружая процессор и опустошая проплаченный трафик или кошелек; включенная геолокация (GPS, ГЛОНАСС, определение координат по беспроводным  сетям) помогает постоянно отслеживать твое положение, выполняя запросы любопытных приложений. Все это может потреблять значительную часть заряда аккумулятора, поэтому «вымыл руки, закрыл кран», ну в смысле — нажал на кнопку и отключил потребителя.

Мобильная сеть

Уровень приема мобильной сети оказывает сильное влияние на сохранение заряда. Чем слабее уровень принимаемого сигнала (меньше делений индикатора антенны на экране), тем больше аппарат тратит энергии на усиление и поддержание этого сигнала. Поэтому в зонах неуверенного приема сигнала (в поезде, к примеру) лучше включать режим «В самолете», тем самым отключая радиомодуль устройства. Аналогично можно поступать вечером, отключая радиомодуль на ночь.

Проблема выбора: 2G или 3G Рассматривая характеристики любого телефона, ты, наверное,  замечал, что производители всегда указывают время автономной работы в сетях 3G меньше, чем в сетях 2G. Это объясняется тем, что сети 3G многоканальны и обеспечивают более высокое качество и надежность соединения (безразрывный переход от одной станции к другой). Поэтому, если тебя не пугают кратковременные потери сигнала и чуть худшее качество разговора при выходе из подземного перехода (хотя это зависит и от множества других факторов), можешь в настройках режима сети (Настройки → Еще →Мобильные сети → Тип сети) выбирать «только 2G» (only GSM) и экономить до 20% на связи с сетью.

Кроме того, если ты находишься в зоне плохого приема сети 3G, а на аппарате выбран автоматический режим «2G/3G», аппарат будет постоянно пытаться подключиться к сети 3G, даже если ее сигнал в несколько раз слабее сигнала 2G. Стоит ли говорить, что такие постоянные скачки требуют значительного расхода энергии, которого также можно избежать.

Однако, когда речь заходит о передаче данных (подключении к интернету), ситуация меняется на противоположную. При болееменее значительном трафике предпочтительнее использовать сети 3G или Wi-Fi вместо 2G. На первый взгляд это кажется спорным утверждением, но дьявол кроется в деталях: во-первых, передача данных в сети 2G (по технологии EDGE) требует на 30% больше энергии, чем в сети 3G, и лишь на 10% меньше, чем потребляет Wi-Fi; во-вторых, скорость передачи данных в сети 3G (HSPA) до 170 раз выше скорости в сети 2G (EDGE), не говоря уже о Wi-Fi, где разница будет в 600 раз. Это означает, что для скачивания той или иной информации устройству потребуется меньше времени, а значит, и меньше энергии.

Простой пример: ты хочешь скачать несколько песен общим размером 30 Мб. С помощью EDGE на это уйдет 30 Мб * 8 / 0,08 Мбит/с / 60 = 50 мин, c помощью HSPA — 30 Мб * 8 / 14 Мбит/с = 17 с, ну а с помощью Wi-Fi — всего 30 Мб * 8 / 50 Мбит/с = 5 с. Теперь, умножив время скачивания на среднее потребление того или иного режима, получим: для EDGE — 300 мА * 50 мин / 60 = 250 мА • ч; для HSPA — 210 мА * 17 с / 60 / 60 = 1 мА • ч; для Wi-Fi — 330 мА * 5 с / 60 /60 = 0,5 мА • ч. В конечном итоге все будет зависеть от объема данных: чем он больше, тем больше будет экономия при использовании более скоростной сети.

Вывод.

При упоре на голосовые вызовы и редком обращении в интернет (например, только обновление погоды и чтение новостей) предпочтительней использовать режим 2G, он даст наибольшую экономию энергии. При частом использовании интернета с большим объемом трафика (просмотр страниц с картинками, работа с почтовыми вложениями, скачивание файлов) предпочтительнее использовать режим 3G. В качестве компромиссного решения при необходимости можешь менять настройки сети 2G/3G, используя панель быстрого доступа или виджеты.

Датчики и сенсоры

Современные телефоны напичканы всевозможными датчиками, которые, естественно, требуют энергии для своей работы. Посмотреть, какие датчики есть в твоем телефоне и сколько они потребляют, очень просто, достаточно установить приложение Android System info, зайти во вкладку System и выбрать пункт Sensor. В первых Android-устройствах обычный акселерометр (датчик, определяющий положение устройства) потреблял до 15 мА • ч, в современных аппаратах это значение, как правило, в 100 раз меньше, поэтому нет особого смысла отключать «автоматическую ориентацию экрана» или «автоматическую яркость» (датчик освещенности), значительным образом это не повлияет на общее энергопотребление аппарата.

Однако следует помнить, что многие приложения, в которых задействовано управление наклонами аппарата, могут использовать сразу несколько датчиков (акселерометр, гироскоп, датчик вращения, датчик ускорения, датчик ориентации, датчик гравитации и другие), что в сумме может дать  потребление до 100 мА • ч.

Экран

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

  1. Размер экрана. Чем экран больше, тем больше энергии необходимо на его подсветку.
  2. Яркость и время подсветки. Чем больше значения яркости экрана и тайм-аута отключения, заданные в настройках, тем больше устройство потребляет энергии. Рекомендую установить автоматическое управление яркостью (по датчику освещенности) и тайм-аут подсветки не более 30 с.
  3. Разрешение экрана. Чем оно выше, тем больше энергии потребляет видеоускоритель устройства, отвечающий за отображение изображения на экране.
  4. Технология изготовления экрана. Грубо все экраны можно разделить на две категории:
  • жидкокристаллические (ЖК) дисплеи, состоящие из ЖК-матрицы и источника света (подсветки). К ним относятся экраны LСD, TFT-LCD, SCLCD, IPS, TFT;
  • дисплеи на органических светодиодах (OLED), состоящие из активной матрицы, излучающей свет. К ним относятся экраны AMOLED, Super AMOLED и подобные.

Приведу простой пример, объясняющий различие в их работе. Если ты хочешь прочитать текст на листе бумаги ночью, у тебя два варианта: либо включить основной свет в комнате, либо подсветить листок маленьким фонариком. Результат в итоге один, но получен он будет с разными энергозатратами.

В нашем примере основной свет — это ЖК-экран, в котором есть только общий источник света, подсвечивающий сразу все пиксели, независимо от того, отображают ли они какоето изображение или нет. Потребление энергии таким экраном постоянно и зависит только от установленной яркости.

В AMOLED-экранах свет излучают только те пиксели, которые задействованы в формировании изображения, если пиксель в нем не участвует (при черном цвете на картинке), он ничего не излучает и, соответственно, не потребляет энергии. Таким образом, общее потребление экрана будет зависеть не только от установленной яркости, но и от изображения: чем больше в нем черного цвета и темных оттенков, тем меньше потребление энергии экраном. Однако есть и обратное правило: чем больше на картинке белых участков, тем больше такой экран потребляет энергии, и в определенных случаях AMOLED-экран может оказаться даже более  «прожорливым», чем ЖК-экран.

Сравнение энергопотребления экранов LCD и AMOLED в зависимо- сти от отображаемой картинки
Сравнение энергопотребления экранов LCD и AMOLED в зависимости от отображаемой картинки

Смотрим таблицу..
Таким образом, все плюсы от экономичности AMOLED- экранов можно получить, лишь соблюдая некоторые нехитрые правила, а именно: стараться не использовать белый фон, в приложениях устанавливать темные темы; в качестве обоев рабочего стола использовать темные картинки с  температурой цветов не более 6500К. Только в этом случае AMOLED-экран сможет оказаться до двух раз экономичнее ЖК-экрана.

Процессор

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

Частота.

Все современные устройства могут управлять частотой своего процессора, уменьшая ее при малых нагрузках, тем самым снижая энергопотребление. Правильно оптимизированное устройство при выключении экрана должно переходить в режим экономичного  энергопотребления, снижать частоту процессора до 15–30% от максимальной величины и оставаться на этой частоте до следующего пробуждения пользователем. Поэтому оценить оптимизацию энергопотребления устройства можно, посмотрев статистику работы процессора на той или иной частоте. Для этого открываем приложение Android System info, выбираем вкладку System и пункт CPU.

Если большую часть времени процессор работает на максимальной частоте, значит, с  оптимизацией есть проблема.  Для ее решения устанавливаем приложение SetCPU (нужен root), с помощью которого можно не только задать рабочую частоту процессора (или уточнить диапазон рабочих частот), но и создать профили частот, активируемые по какому-либо событию (запуску приложения, уменьшению заряда, отключению экрана, времени), то есть оптимизировать процесс управления частотой под себя. Например, частоту в рабочем режиме можно установить не более 1000–1200 МГц; по событию «экран выключен» и «заряд менее 15%» максимальную частоту ограничить половиной от рабочей частоты, а минимальную — установить на минимум; задать профили для часто запускаемых приложений с ограничением их максимальной рабочей частоты той величиной, при которой сохраняется комфортная для тебя отзывчивость интерфейса (так, для игр вполне может хватить 800 МГц, а для просмотра фильмов и прослушивания музыки — 500 МГц). Такой подход поможет сэкономить до 50% заряда, расходуемого процессором.

Оптимизированый процессор
Оптимизированый процессор

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

Процессор не оптимизирован
Процессор не оптимизирован

Скажу лишь, что для многоядерных устройств предпочтительнее использовать режим hotplug (если такого режима у тебя в списке SetCPU нет — используй interactive, ну или ondemand, он есть по умолчанию на большинстве ядер), который в простое отключает незадействованные ядра процессора и наиболее эффективен в соотношении производительность/экономичность.

Уменьшение напряжения процессора (андервольтинг).

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

ЧАСТЬ 2. СОФТ

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

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

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

Для начала нужно проверить, есть ли у девайса проблемы с режимом энергосбережения в режиме «сна». Сделать это можно даже без установки сторонних приложений с помощью стандартного пункта меню настроек «Использование аккумулятора» (или «Батарея»), желательно после долгого периода бездействия телефона, например утром. Можно не задерживаться на первом экране, показывающем, на какие задачи ушел уже израсходованный заряд, тут мало для нас интересного, лучше тапнем на график и перейдем в «Подробный журнал», отображающий график разряда аккумулятора и пять полосок. Определить наличие будящих приложений можно, сравнив полоски «экран включен» и «рабочий режим».

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

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

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

Disable Service: синий — работающие в фоне процессы, красный — отключенные, белый — общее количество про- цессов приложения
Disable Service: синий — работающие в фоне процессы, красный —отключенные, белый — общее количество процессов приложения

C такими приложениями и процессами можно поступить одним из следующих способов:

  • Удалить, если это не особо нужное пользовательское предложение.
  • Отключить автозагрузку с помощью Autorun Manager. Советую отключать не только подозрительные и будящие программы, но и другие редко используемые приложения, которые часто висят в оперативной памяти и кеше (вкладка настроек «Приложения → Работающие»). Так в памяти появятся действительно часто запускаемые программы.
  • Временно заморозить с помощью Titanium Backup или того же Autorun Manager. Это на случай, если приложение понадобится в будущем или если речь идет о системном приложении, которое нежелательно удалять (если, например, ты хочешь сохранить возможность обновления по воздуху). При заморозке приложение пропадет из списка программ, но физически не удалится. Однако следует помнить, что заморозка некоторых системных приложений может привести к сбою в работе системы, поэтому действуем осторожно.
  • Отключить конкретный будящий процесс приложения с помощью программы Disable Service, без отключения всего приложения.
  • Принудительно отправить будящие приложения в глубокий сон с помощью приложения Greenify. Но следует учитывать, что «гринифицированное» приложение перестанет запускаться по событиям, обновлять свои данные, получать push-уведомления и прочее до следующего запуска вручную. Еще одна полезная мелочь — Greenify встраивается в Wakelock Detector, и его функционал доступен прямо оттуда.

Иногда сторонние приложения могут влиять на сон устройства через системные процессы, которые оказываются «крайними» и выводятся в списке wakelock’ов как виновники незасыпания (например, процессы suspend, events/0). Найти истинных виновников незасыпания в этом случае можно, последовательно замораживая/удаляя подозрительные приложения (начав с недавно установленных) и наблюдая за лидерами в списке wakelock’ов.

Важные советы:

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

  • Покупай аккумуляторы и зарядные устройства только от официального производителя. Как показывает опыт, реальная емкость дешевых аккумуляторов гораздо меньше указанной, а дешевые зарядные устройства в лучшем случае не выдадут заявленный на них максимальный ток, а в худшем — навредят аккумулятору повышенным напряжением или пульсирующим током.
  • Старайся заряжать устройство не от USB-порта компьютера, а от сетевой зарядки. На старте зарядка аккумулятора идет более высоким током, который не может выдать USB-порт, в результате увеличивается время зарядки и уменьшается ресурс аккумулятора (прежде всего это касается мощных аккумуляторов с большим зарядным током от 1 А).
  • Заряжай устройства полными циклами, старайся не допускать глубокого разряда (до выключения) и частичных подзарядов в середине цикла, все это сказывается на ресурсе аккумулятора, постепенным снижением его емкости.
  • SD- и SIM-карты могут влиять на энергопотребление. Если ты столкнулся с высоким разрядом, попробуй походить день без SD-карты. Если предположения подтвердятся — отформатируй карту в самом телефоне или при необходимости замени ее. SIM-карты также лучше менять на новые каждые 3–4 года (благо это бесплатно).
  • Раз в полгода (а при подозрительно быстром разряде — чаще) проверяй внешнее состояние аккумулятора на наличие вздутия и деформаций (начало вздутия можно заметить, приложив аккумулятор к ровной поверхности), в случае их обнаружения аккумулятор лучше заменить.
  • Также периодически продувай и чисти USB-контакты устройства.
  • Старайся брать телефон с емкостью аккумулятора не менее 600 мА • ч на 1″ экрана :).

ВЫВОДЫ

Все советы были использованы мной лично и позволили увеличить срок жизни четырех Android-устройств до 2–4 дней. См. скриншот «15 часов и 88%».

Click to rate this post!
[Total: 46 Average: 3.5]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

5 comments On Энергопотребление андроид — увеличиваем автономную работу на 50%

Leave a reply:

Your email address will not be published.