Как уменьшить энергопотребление устройства?

Данный пост изначально был написан для 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 часов.

 

2010-2011 © XperiaX10i Все права защищены.
Web-IP.ru - Система Активной Рекламы WMlink.ru - рекламный брокер
Бесплатный хостинг uCoz