Как уменьшить энергопотребление устройства?KTNSAt Дата 22.11.09, 4:26Данный пост изначально был написан для Samsung i7500, однако практически все советы могут быть применимы на других мобильных устройствах Android ОС.
Для начала нужно проверить, есть ли необходимость в вашем аппарате что-либо оптимизировать или он уже выдаёт всё что может. Для этого, после дня умеренного использования аппарата, в звонилке набираем код
*#*#4636#*#* (или пользуемся программой
SpareParts), и смотрим пункт "
Battery history" (Журнал аккумулятора). Тут сводится вся информация о потреблении устройством энергии.
Нас интересует в первую очередь пункт первого меню "Other Usage" (Прочее), он выводит следующие подпункты:

1.
Running ("Режим работы" или "Выполняется") -показывает время вне режима ожидание, т.е. всё то время когда аппарат активен; (в %, при нажатии в мин.)
2.
Screen on ("Экран включён") - показывает время работы аппарата с включённым экраном; (в %, при нажатии в мин.)
3.
Phone on ("Телефон вкл.") - показывает время разговора по телефону. (в %, при нажатии в мин.)
Второе меню позволяет сортировать данные и выводить их: либо за всё время работы аппарата, либо за время с последней загрузки, либо с последней подзарядки.
Показатели во всех пунктах у всех будут разные, но вот для % соотношения есть определённая зависимость. Сам показатель "Running" складывается из двух составляющих, грубо говоря "видимой" и "невидимой".
- "Видимая" составляющая формируется из всех действий которые происходят когда экран устройства включён, соответственно она ровна показателю "Screen on".
- "Невидимая" составляющая в свою очередь формируется когда экран устройства выключен, и в идеале она должна быть около "0". На деле же, она далеко не равна "0", и как правило (!но не только) это связано с работой фоновых приложение в режиме "сна" устройства.
Таким образом, определить есть ли проблемы с энергопотреблением устройства в режиме "сна" можно следующем образом:
Из показателя "Running" вычитаем показатель "Screen on" и получаем ту самою "невидимую" составляющую. Если она получается больше 10-15% (в идеале она должна составлять 3-10%), и находится в таком состоянии несколько дней значит есть над чем поработать, и энергопотребление можно улучшить.
Подробнее...Следует учесть, что прослушивание музыки при выкл. экране, ICQ весящая в фоне всё это тоже увечит значение "невидимой" составляющей, поэтому не надо этому удивляться, это нормально. Если же вы знаете, что не используете приложения в фоновом режиме, а "невидимая" составляющая в режиме сна ростёт, это верный признак того, что аппарат что-то постоянно "будит" и он не может нормально находится в режиме энергосбережения.
Наиболее достоверное среднее значение показателя "Running" будет сформировано примерно за день использование аппарата. Однако можно не ждать целый день, достаточно просто открыть данный пункт и запомнить значение показателя в минутах. Затем выйти из журнала и выкл. экран (перевести аппарат в режим "сна"). Спустя к примеру 10 мин. вкл. аппарат, запустить журнал и сравнить новое значение показателя с предыдущем. Например, показатель "Running" в начале был 52 мин. 10 сек, спустя 10 минут "сна" он стал 54 мин. 25 сек, т.е увеличился на 75 сек. или на 12.5% по отношению ко времени сна, что является более-менее нормальным показателем. Соответственно чем больше будет расчётное время сна, между измерениями, тем точнее будет значение параметра которое вы найдёте.
Далее я описал несколько советов как можно улучшить энергопотребления устройств, большинство из них направлено как раз на уменьшения показателя "Running" (и в особенности "невидимой" составляющей).
1. Аппарат не засыпает (100% времени находится в активном состоянии) если нажата хотя бы одна кнопка.
2. Автосинхронизация, передача фоновых данных, запросы программ, и прочее, всё это тоже кушает драгоценную энергию и деньги за интернет трафик. Советую установить
APNDroid для ручного включения и отключения APN (сетевых интернет соединений) на вашем телефоне. Что бы проследить за трафиком когда вы сидите в интернете не по WiFi советую установить
3G Watchdog (её тоже лучше включать только перед интернет сессией).
3. Беспроводные сети, а именно включённая сеть 3G (особенно в зонах её плохого покрытия), определение координат по станциям, wifi, gps, блютус, сенсор положения, всё это лучше включать при необходимости и выключать при ненадобности. Выведите на рабочий экран виджеты для быстрого включения этих функций.
4. На ночь лучше выключать GSM приёмник телефона. В основном это имеет смысл если покрытие в месте где будет лежать телефон не устойчивое, в противном случае можно этим пунктом пренебречь. (Лучше отключать именно приёмник, а не сам телефон, так как перезагрузка съест ещё больше энергии)
5. Процессы связанные с использованием сенсора "положения" в играх и программах не убираются из памяти должным образом даже после закрытия программ (в том числе таск менеджером), и на них тоже тратится энергия. Единственный способ убрать их из памяти это перезагрузка. Однако как показывает практика расход энергии на них невелик. (порядка 3-5% от времени "вне режима ожидания")
6. Можно увеличить продолжительность работы путём уменьшения частоты процессора. Для этого можно воспользоваться программой
SetCpu и при падении заряда скажем менее 30% установить пониженную частоту работы процессора, чтобы дотянуть до зарядки. Можно также установить пониженную частоту работы на режим "сна", если у Вас нет фоновых ресурсоёмких задач. (
ВНИМАНИЕ! При данных манипуляциях может нарушится стабильность системы. Делаем на свой страх и риск!)
Подробнее...
На самом деле все современные устройства динамически управляют своей "частотой", в зависимости от нагрузки на процессор. К сожалению определить точно в каких пределах она изменяется пока не удалось, но работы ведутся ).
В любом случае принудительно уменьшать частоту с помощью SetCPU на 10-15% точно смысла не имеет, предполагаю, что это штатный разброс. Лишь при большем изменении частоты удаётся получить более-менее существенную прибавку ко времени работы аппарата.
Например у меня при процессоре на 528 МГц, я использовал след установки:
-обычный режим 122-384 МГц;
-режим сна 19-128 МГц.
Субъективно это увеличивало время работы примерно на 20%, при этом зависаний устройства не наблюдалось.
7. Многие программы весящие в фоне, продолжают "будить" телефон находящийся в режиме "сна", и не дают ему перейти в режим энергосбережения, при этом увеличивается тот самый показатель "
Running" (точнее его "невидимую" составляющую). К таким программам можно отнести: программы с постоянным "общением" с сетью (клиенты соц. сетей, IM, VoIP, виджеты погоды и т.д.), музыкальные проигрыватели (при прослушивании музыки),программы и виджеты мониторинга с высокой частотой обновления (показывающие температуру и напряжение акб, кол-во RAM памяти, загрузку процессора, таск панели запущенных приложений и т.п.), программы с ошибками в программном коде (в основном ранние или бета версии некоторых программ).
Вычислить "будящую" аппарат программу или процесс можно несколькими способами:
- можно посмотреть в журнале аккумулятора, в первом меню выбрав по очереди "Использование CPU" (CPU Usage) и "Частичное пробуждение" (Partial wake usage).
- можно установить к примеру
OS Monitor. С помощью него также можно наблюдать за активностью программ. Хорошо ли они "спят" ))).

Повышенный показатель UTime говорит о чрезмерной активности программы.
- можно установить
SystemPanel.

В ней можно удобно посмотреть статистику использования процессора приложениями весящими в фоне. Высокий показатель
AverageConsuption не добрый знак.
- в конце концов можно устанавливать подозрительные программы по одной, следя за показателем "
Running" способом описанным выше (долго и муторно, но результат практически 100%);
Подробнее...Лично у меня стоял виджет для Taskillera, как оказалось имено из-за него телефон 25% выключенного времени на засыпал. Кроме того у меня были проблемы c Audio Manager. Однако при недавнем тестировании этих же программ но более новых версий, старых проблем я уже не обнаружил, т.е. программы постоянно улучшаются разработчиками, поэтому от общего списка "будящих" программ я решил отказаться. Постоянно же тестировать все программы физически невозможно, проще соблюдать правила описанные выше.)
Для тех кто до сих пор ищет причину "не засыпания" я бы посоветовал сделать общий сброс, установить только программы блокировки APN, и по журналу работы аккумулятора наблюдать за показателем "Running", устанавливая и используя различные приложения и программы.
В итоге...
Выполнив данные не хитрые советы я смог добиться уменьшения своего показателя "
Running" до 3-10% (в режиме повседневного использования), при этом время работы моего телефона увеличилось с
18 до 75 часов (40 мин разговоров, 80 мин музыки, ~30 мин игр, wifi ~3 ч и пр.). Но даже при загруженной недели когда в ДЕНЬ бывает по 30-40 мин разговоров аппарат живёт в среднем порядка
50-60 часов. (пост изначально был написан для Samsung i7500)
При подготовки статьи также использована информация предоставленная пользователями fatspirit, Maximulus и Crea.
Обсуждение возможностей улучшения энергосбереженияСообщение отредактировал paladin7 - 04.12.10, 16:26