time traveler
Пол:
Регистрация: 12.08.2007
Адрес: Галактика Млечный путь.
Сообщений: 3,685
Репутация: 4694
|
Рекомендации по энергосбережению на Android устройствах.
Советы по улучшению энергосбережения устройств на Android OS
Прежде чем задавать вопросы прочитайте полностью "шапку" темы со всеми вкадками (лучше несколько раз), в противном случае ваши посты будут удалятся. И не забывайте пользоваться поиском по теме, т.к. 80% вновь задаваемых вопросов уже обсуждались.
Проверяем
В начале рассмотрим основную и не всегда очевидную причину быстрого разряда аппарата, нарушение режима энергосбережения в режиме сна.
Для OS Android до версии 2.3 (Читать всем в любом случае, для понимания основной сути).
До версии 2.3
Чтобы понять есть ли у аппарата проблемы с его режимом сна, после дня умеренного использования аппарата в звонилке набираем код *#*#4636#*#* (или пользуемся программой SpareParts http://www.androlib.com/android.appl...parts-qtm.aspx или http://www.cyrket.com/p/android/com....s.spare_parts/), и смотрим пункт "Battery history" ("Журнал аккумулятора" или "Журнал сведений о батарее"). Тут сводится вся информация о потреблении устройством энергии.
Нас интересует в первую очередь пункт первого меню "Other Usage" ("Прочее использование"), он выводит следующие подпункты:
[IMG]http://img440.**************/img440/760/71889646.png[/IMG]
1. Running ("Режим работы" или "Выполняется") -показывает время вне режима ожидание, т.е. всё время активности аппарата, назовём этот параметр просто "Активность"; (в %, при нажатии в мин.)
2. Screen on ("Экран включён") - показывает время работы аппарата с включённым экраном; (в %, при нажатии в мин.)
3. Phone on ("Телефон вкл.") - показывает время разговора по телефону. (в %, при нажатии в мин.)
Второе меню позволяет сортировать данные и выводить их: либо за всё время работы аппарата, либо за время с последней загрузки, либо с последней подзарядки.
Показатели во всех пунктах у всех будут разные, но вот для % соотношения есть определённая зависимость.
Активность аппарата (показатель "Running") складывается из двух составляющих, "видимой" и "невидимой".
- "Видимая" составляющая формируется из всех действий которые происходят когда экран устройства включён, соответственно она ровна показателю "Screen on".
- "Невидимая" составляющая в свою очередь формируется когда экран устройства выключен. В идеале "невидимой" активности вообще не должно быть, если же она есть, значит аппарат что-то будит когда он "спит"и на это тратится энергия заряда.
Таким образом, определить есть ли проблемы с энергопотреблением устройства в режиме "сна" можно следующем образом:
Из показателя "Running" вычитаем показатель "Screen on" и получаем ту самою "Невидимую" составляющую. Если она получается больше 10% (в идеале она должна составлять до 5%), и находится в таком состоянии несколько дней значит надо искать будящую программу способами описанными в пункте 9.
Следует учесть, что прослушивание музыки при выключенном экране, ICQ весящая в фоне, (и другие подобные задачи) всё это тоже увеличивает значение "невидимой" составляющей, поэтому не надо этому удивляться, это нормально. Если же вы знаете, что не используете приложения в фоновом режиме, а "невидимая" составляющая в режиме сна растёт, это верный признак того, что аппарат что-то постоянно "будит" и он не может нормально находится в режиме энергосбережения.
Подробнее...
Наиболее достоверное среднее значение показателя "Running" будет сформировано примерно за день использование аппарата. Однако можно не ждать целый день, достаточно просто открыть данный пункт и запомнить значение показателя в минутах. Затем выйти из журнала и выкл. экран (перевести аппарат в режим "сна"). Спустя к примеру 10 мин. вкл. аппарат, запустить журнал и сравнить новое значение показателя с предыдущем. Например, показатель "Running" в начале был 52 мин. 10 сек, спустя 10 минут "сна" он стал 53 мин. 25 сек, т.е увеличился на 75 сек. или на 12.5% по отношению ко времени сна, что является слегка завышенным значением. Соответственно чем больше будет расчётное время сна, между измерениями, тем точнее будет значение параметра которое вы найдёте.
Для OS Android с версии 2.3 (включительно).
С версии 2.3
Способ 1.
В версии ОС>2.3. убрали пункт "журнал аккумулятора", вместо этого появился пункт "Использование батареи" (меню\настройка\сведения о телефоне\...).
В данном пункте приведён перечень параметров на которые уходит основной заряд батареи.
[IMG]http://img824.**************/img824/7564/16665720.png[/IMG]
Вот расшифровка основных из них (перевод параметров на разных моделях может различаться, но всегда можно сориентироваться по неизменным иконкам):
А. "отобразить" - время работы с включённым экраном (потребление энергии экраном);
Б. "режим ожидания"- время использования радиомодуля (потребление энергии радиомодулем телефона);
В. "время простоя" - время работы с выключенным экраном (думаю [но пока не факт!] сюда входит "невидима" составляющая, но только не для системных процессов);
Г. "Система Андроид" и "ОС Андроид" - время работы системных приложений (потребление энергии системными приложениями, при этом их активность в режиме сна показывается отдельно)
Д. "голосовые вызовы", "Wi-Fi" - общая длительность голосовых вызовов и время работы Wi-Fi (соответственно энергия затраченная на вызовы и Wi-Fi)
Пусть никого не пугают высокие значения % п. А, Б это основные потребители в любом телефоне и это нормально, хуже когда лидирует в этом списке что-то другое. И вообще, параметры выводимые в данном пункте настроек это всего лишь % соотношения, и они всегда будут в своей сумме образовывать 100%, т.е. показывать, как распределился заряд израсходованный за определённое время работы от батареи (выводимое вверху экрана).
К сожалению, из-за несовершенства системы, увидеть в этом списке, кроме вышеописанных параметров, в лучшем случае возможно только программу работающую "открыто". Встретить программу работающую "скрыто" (когда аппарат "спит"), т.е. увеличивающую "невидимую" активность, очень маловероятно.
Если тапнуть на верхнюю часть, то мы попадём в пункт с графиками разряда. Большой график показывает динамику снижения уровня заряда аккумулятора (по оси Y- уровень заряда, по оси Х-время).
[IMG]http://img844.**************/img844/4401/14627209.png[/IMG]
Под ним 4 полоски:
-"Сигнал телефона" (показывает качество радио сигнала в месте нахождения аппарата, зелёная - хорошее, красная - плохое. Чем хуже качество, тем большее аппарат будет тратить энергии);
-"Wi-Fi" (синяя заливка полоски показывает время использование Wi-Fi передатчика);
-"Рабочий режим" или "Режим бодрствования" (синяя заливка полоски показывает время активности аппарата);
-"Экран включён" (синяя заливка полоски показывает время когда экран аппарата был включен);
-"Зарядка" (заливка полоски показывает время в течении которого аппарат заряжался);
Вся активность аппарата складывается из двух составляющих, "видимой" и "невидимой".
"Видимая" составляющая формируется из всех действий которые происходят когда экран устройства включён, т.е. когда полоска "Экран включён", а над ней и полоска "Рабочий режим", залиты синим;
"Невидимая" составляющая формируется когда экран устройства выключен, т.е. когда полоска "Рабочий режим" залита синим, а полоска "Экран включён" под ней нет. В идеале "невидимой" активности вообще не должно быть, если же она есть, значит аппарат что-то будит когда он "спит"и на это тратится энергия заряда.
На скриншоте приведённым выше как раз хорошо видна "невидимая" активность. За ночь наблюдений (идеальный период наблюдения, так как графики строятся довольно медленно), часть времени аппарат не спал. Если такая "невидимая" активность появляется слишком часто, продолжительна по времени (составляет более 10% от всей полоски "Рабочий режим") и приводит к значительной потери заряда, значит надо искать будящую программу способами описанными в пункте 9.
Следует учесть, что прослушивание музыки при выключенном экране, ICQ висящая в фоне, (и другие подобные задачи) всё это тоже увеличивает значение "невидимой" составляющей, поэтому не надо этому удивляться, это нормально. Если же вы знаете, что не используете приложения в фоновом режиме, а "невидимая" составляющая в режиме сна растёт, это верный признак того, что аппарат что-то постоянно "будит" и он не может нормально находится в режиме энергосбережения.
Способ 2.
Установить программу Battery History открывающий "Журнал аккумулятора" и пользоваться старой методикой, актуальной для ОС<2.3.
Оптимизируем
Далее я описал несколько советов как можно значительно уменьшить энергопотребления устройств, некоторые из них направлены как раз на исключение пробуждения аппарата во время "сна".
1. Внешнее воздействие.Аппарат не засыпает если нажата хотя бы одна кнопка. И хотя данная проблема на большинстве аппаратов в новых прошивках уже решена, не поленитесь и проверьте, спит ли ваше устройство при нажатой кнопке (если не спит, "невидимая" составляющая за время удерживания кнопки будет равна 100%). Например, на Samsung i7500 особенно чувствительна оказалась кнопка камеры, и до выхода новой прошивки аппарат разряжался в считанные часы (в узком чехле из комплекта поставки).
2. Передача данных.Передача данных (мобильный интернет), автосинхронизация, передача фоновых данных, и прочее, на всё это тоже тратится энергия и деньги за интернет трафик.
Настоятельно рекомендую при не использовании интернет-соединения всегда отключать передачу данных EDGE, 3G и пр. Отключение передачи данных может сэкономить до 20% заряда за ночь (причём, нужно именно отключать передачу данных через меню или с помощью программы, блокировка трафика посредством Firewall не всегда помогает в этом плане).
Если стандартными средствами у вас не предусмотрена функция отключения "Передачи данных" (в основном на прошивках до Андроид 2.2.; обычно данная функция "сидит" на кнопке разблокировки) вы всегда можете установить отдельную программу позволяющую в ручную включать и отключать APN (сетевые интернет соединения) на вашем телефоне. Пример таких программ это APNSwitch и APNDroid. Что бы проследить за трафиком когда вы сидите в интернете не по Wi-Fi советую также установить программу мониторинг за трафиком, например 3GWatchdog (его тоже лучше включать только перед интернет сессией).
3. Беспроводные сети.Включённая сеть 3G (особенно в зонах её плохого покрытия), определение местоположения по беспроводным сетям (п. "GPS и Безопасность"), Wi-Fi, GPS, Bluetooth, всё это лучше включать при необходимости и выключать при ненадобности. Выведите на рабочий экран виджеты для быстрого включения этих функций.
4. Выбор между 2G или 3G.Тут всё просто, если у вас приоритет на голосовые вызовы используйте 2G сети, это даст наибольшую экономию. Если приоритет на передачу данных, то использование 3G в определённых ситуациях может оказаться более выгодным.
Передача голоса. Особенность 3G сетей в том, что они многоканальны и способны передавать голос и данные одновременно, тогда как 2G сети (в ОС Андроид) единовременно могут передавать только что-то одно. Таким образом при обычном звонке (!не видео-звонке) все каналы будут заняты под передачу голоса, и хоть это возможно и повысит качество голоса но и энергопотребление также увеличит. (до 20% по некоторым источникам)
Передача данных. При достаточно хорошем покрытии вашего города сетью 3G (постоянно 3-4 делений), для передачи данных предпочтительнее использовать 3G взамен EDGE, так как EDGE потребляет в среднем на 30% больше энергии чем 3G (300 мА против 210 мА) и сравним с потреблением Wi-Fi (до 330 мА) (данные приведены для уверенного приёма обоих сетей при полной загрузке - скачивание файла к примеру). К тому же меньший итоговый расход энергии получается из-за меньшего времени использования сети 3G за счёт более высокой скорости передачи данных. Если же покрытие 3G не устойчивое, и местами отсутствует вовсе, лучше будет отключить использование сети 3G, так как при нахождении в зоне 2G ваш аппарат будет постоянно сканировать лишний диапазон частот на наличие 3G, тратя дополнительно драгоценную энергию.
5. Отключение радиомодуля.Старайтесь выключать радиомодуль телефона (включать режим "в самолёте") в условиях плохого приёма сигнала от базовой станции, когда нет необходимости в телефонной связи (например ночью или в поездке). Иногда это может существенно сэкономить заряд. Запомните, чем хуже уровень сигнала (количество "палок" на индикаторе), тем больше аппарат будет потреблять энергии на его поддержание.
Кроме того, лучше отключать именно радиомодуль, а не сам телефон, так как перезагрузка "съест" ещё больше энергии.
6. Сенсоры и Датчики (Акселерометр, датчик магнитного поля и т.д.)6.1. Каждый датчик находящийся в телефоне требует энергии для своей работы. Если речь идёт о "жёсткой" экономии заряда, то отключение или не использование каких-либо датчиков позволяет добиться сохранения определённой доли заряда.
Например у меня на SGS i9000 встроенные датчики имеют следующие значения потребляемого тока (я думаю данные характеристики применимы к 90% всех аппаратов на Андроид ОС):
-датчик вращения, 4,2 мА;
-датчик приближения, 0,75 мА;
-датчик ориентации, 4,2 мА;
-датчик магнитного поля, 4,0 мА;
-датчик ускорения, 0,2 мА;
-датчик света, 0,75 мА;
-датчик силы тяжести, 0,2 мА;
-акселерометр, 0,2 мА.
Ещё могут быть Гироскоп, Датчик давления, Термометр, но у меня их в аппарате нет.
Таким образом, самыми "прожорливыми" являются датчики отвечающие за ориентацию телефона в пространстве, и простое отключение функции "поворота экрана" может увеличить продолжительность жизни аппарата на 5-10% (субъективное суждение по модели Samsung i7500). Для быстрого включения\выключения данной функции можно вынести отдельный виджет на рабочий экран (например используя SwitchPRO Widget http://www.androlib.com/android.appl...hpro-CFBF.aspx).
6.2. Игры в которых задействован сенсор положения могут потреблять до 90-200 мАч (к примеру 90 мА-это среднее потребление подсветки LCD экрана, 200 мА - потребление работающего GPS приёмника телефона), кроме того процессы связанные с использованием данного сенсора в играх и программах не убираются из памяти должным образом даже после закрытия программ (в том числе таск менеджером), и на них тоже тратится энергия. Просмотреть наличие в вашем телефоне таких остаточных процессов можно следующим образом (правда только на Андроид <2.3): после выхода из игры заходим в "журнал аккумулятора", выбираем вкладку "использования сенсора" и ищем там процесс с названием недавно закрытой игры или программы. Единственный способ убрать такие процессы из памяти это перезагрузка, однако как показывает практика, в большинстве случаев, расход энергии на них невелик.
7. Изменение частоты и режима работы процессора.
ВНИМАНИЕ! Ручное изменение частоты CPU может привести к зависанию, нестабильной работе и теоретически даже к повреждению устройства. Делаем всё на свой страх и риск!
Как известно все современные устройства динамически управляют своей частотой CPU в зависимости от нагрузки на процессор. Однако, даже изначально это не всегда может происходить правильно и наиболее оптимально, в следствии чего у аппарата будет не экономичный расход энергии. Поэтому в определённых ситуациях "ручное" уменьшение частоты CPU способно дать существенное увеличение времени автономной работы (особенно на современных моделях с частотой >1 ГГц). Наиболее удобная программа для ручного управления частотой SetCPU https://market.android.com/details?i...g.overclocking ( !требуются root права). В ней можно легко настроить изменение частоты по профилям, например когда экран выключен или при снижении заряда аккумулятора ниже кого-либо предела. При этом следует учитывать, что уменьшение частоты лишь на 10-15% мало повлияет на увеличение времени автономной работы, поэтому я советую уменьшать частоту в обычном режиме не менее чем на 25%.
Определить есть ли проблемы со штатным режимом управления частотой, да и вообще оценить загрузку процесса можно с помощью Android System Info, https://play.google.com/store/apps/d...ctricsheep.asi открыв вкладку System>CPU.
[IMG]http://img208.**************/img208/9410/35617640.png[/IMG]
Если там вы увидите, что большую часть времени у вас CPU работает на повышенных частотах, и при этом вы не используете ресурсоёмкий приложений, значит есть над чем поработать. При этом в первую очередь нужно посмотреть графики загрузки процессора в программах мониторинга, например PowerTutor или SystemPanel. Если процессор не грузит какое-либо приложение, за счёт чего его частота поднимается, значит не правильно работает штатный режим управления частотой, что в свою очередь исправляется установкой SetCPU и ручной установкой режимов работы процессора.
Описание режимов работы CPU.
В большинстве ядер существует 5 режимов работы ЦП. Их можно расположить по эффекту энергосбережения, от бОльшего к меньшему, следующим образом: userspace(в зависимости от настроек), powersave, conservative, ondemand, performance.
ondemand - пошаговое повышение работы частоты ЦП, в зависимости от нагрузки. Общий смысл принципа работы - каждые 20-200 мс замеряется нагрузка на cpu, общая или пользователем, и если нагрузка на текущей частоте более 95% - частота повышается, если менее 20% - частота понижается на 1 шаг. Частоту замера, % загрузки перехода и остальное для всех режимов выставляется при компиляции ядра.
conservative - тоже, что и ondemand, но нагрузка для перехода частоты процессора в большую или меньшую сторону меньше - обычно 20%. Например: доступно 100-200-400-800-1000 MHz, работаем на 200 MHz, нагрузка возросла на 30%, переходим на 400 Mhz.
performance - макс доступная частота, макс производительность.
powersave - минимум производительности, максимум батареи.
userspace - работает на заданных пользователем частотах.
В модифицированных ядрах могут присутствовать дополнительные режимы:
Interactive - интерактивный режим, гоняет частоту ЦП в реальном времени, почти всегда на полную производительность.
Smartass - режим, основанный на Interactive. Отличается более быстрым снижением частоты в простое, а также понижает частоту до минимума при выключенном экране.
X-версии Ondemand, Smartass, Interactive - эти режимы основаны на оригинальных режимах + во время сна выставляется режим Conservative.
При этом следует понимать, что чем экономичнее режим работы CPU (и фактически меньше средняя частота его работы), тем менее отзывчивее может стать интерфейс и ниже общая скорость работы устройства. Протестируйте разные режимы работы и подберите наиболее оптимальный для вас по соотношению удобство работы/экономичность.
8. Экран.
Экран является одним из основных потребителей энергии в мобильном устройстве, при этом его потребление зависит от следующих основных параметров: размера и разрешения, типа, выставленного уровня яркости, таймаута подсветки (времени горения подсветки после прекращения активности).
Тип экрана.
На данный момент в основном производителями используются следующие типы экранов: IPS, TFT-LCD, SCLCD, OLED (AMOLED и SuperAMOLED). При этом, наиболее экономичными по потреблению энергии, правда при определённых условиях и об этом ниже, являются дисплеи на органических светодиодах SuperAMOLED ( Список телефонов с этим экраном).
Экономия энергии в данных дисплеях достигается за счёт отсутствия общей подсветки матрицы и светятся в них только сами пиксели. При этом для отображения черного цвета в AMOLED дисплее просто отключаются необходимые участки экрана, поэтому на энергопотребление таких экранов существенное влияние оказывает отображаемая картинка. Чем больше на этой картинке будет чёрного цвета и тёмных оттенков, тем меньше AMOLED экран будет потреблять энергии. Примеры ниже:
[IMG]http://img195.**************/img195/2677/80679119.jpg[/IMG]
[IMG]http://img837.**************/img837/4440/55201573.jpg[/IMG]
[IMG]http://img705.**************/img705/5331/57792923.jpg[/IMG]
[IMG]http://img528.**************/img528/2136/26519220.jpg[/IMG]
Поэтому используйте по возможности тему с чёрным или тёмным цветным фоном, с температурой цветов более 6500К (см. рис. выше). Старайтесь не использовать белый фон, в том числе в программах выбирайте более тёмные "скины". Только в этом случае AMOLED дисплей может оказаться более экономичным по сравнению с TFT-LCD на 50-80%.
Яркость.
Исходя из показателей реальных замеров потребляемого аппаратом тока(см. полезные посты) можно сделать вывод, что потребление экрана в пределах регулирования яркости:
10-30% - практически не меняется;
30-50% (и далее с шагом 20%) - уже увеличивается на 10-20%, в зависимости от аппарата;
70-100% - существенно увеличивается, до 50%.
Таким образом делаем вывод - наибольшую экономию (без сущ. вреда удобству) даст выставление значения уровня яркости на значение до 30%.
Автоматическая яркость. Логично предположить, что для среднестатистического пользователя, потребление экрана с вкл. автояркостью будет больше (чем если вы будите просто ходить скажем с фиксированным 30% значением) просто потому, что иногда яркость будет работать и на 80 и на 100% (днём на улице к примеру).
Но в реальности всё будет зависеть от следующих причин:
1. от правильности и скорости работы самого сенсора переключающего яркость;
2. от распорядка дня пользователя, где он чаще бывает (на улице или в пом.) и т.п.;
Т.е. советую походить несколько дней сначала с фиксированным значением яркости, а потом с автояркостью, выяснить экономию и сделать вывод, с чем вам в итоге удобнее.
|