Найти тему

Оптимизируем Android смартфон для меньшего энергопотребления.

Оптимизируем Android смартфона для меньшего энергопотребления.

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

 

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

 

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

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

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

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

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

INFO

Push-уве­дом­ления от опе­рато­ра лиш­ний раз про­буж­дают устрой­ство и выводят его из режима энер­госбе­реже­ния, луч­ше отклю­чить их в меню SIM-кар­ты.

Рас­смат­ривая харак­терис­тики любого телефо­на, ты, навер­ное, замечал, что про­изво­дите­ли всег­да ука­зыва­ют вре­мя авто­ном­ной работы в сетях 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, исполь­зуя панель быс­тро­го дос­тупа или вид­жеты (при наличии root или кас­томной про­шив­ки. — Прим. ред.).

 

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

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

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

1. Раз­мер экра­на. Чем экран боль­ше, тем боль­ше энер­гии необ­ходимо на его под­свет­ку.

2. Яр­кость и вре­мя под­свет­ки. Чем боль­ше зна­чения яркости экра­на и тайм‑аута отклю­чения, задан­ные в нас­трой­ках, тем боль­ше устрой­ство пот­ребля­ет энер­гии. Рекомен­дую уста­новить авто­мати­чес­кое управле­ние яркостью (по дат­чику осве­щен­ности) и тайм‑аут под­свет­ки не более 30 с.

3. Раз­решение экра­на. Чем оно выше, тем боль­ше энер­гии пот­ребля­ет виде­оус­коритель устрой­ства, отве­чающий за отоб­ражение изоб­ражения на экра­не.

жид­кокрис­талли­чес­кие (ЖК) дис­плеи, сос­тоящие из ЖК‑мат­рицы и источни­ка све­та (под­свет­ки). К ним отно­сят­ся экра­ны LСD, TFT-LCD, SCLCD, IPS, TFT;

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

-2

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

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

INFO

С помощью при­ложе­ния Pixel Battery Saver мож­но отклю­чать целые ряды пик­селей AMOLED-экра­на, тем самым сни­жая его энер­гопот­ребле­ние.

 

Процессор

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

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

-3
-4

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

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

Умень­шение нап­ряжения про­цес­сора (андерволь­тинг). Этот вари­ант опти­миза­ции энер­гопот­ребле­ния про­цес­сора уже рас­смат­ривал­ся в статье «Эффектив­ная диета» (апрель 2014-го), поэто­му не будем на нем оста­нав­ливать­ся.

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

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

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

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

Уда­лить, если это не осо­бо нуж­ное поль­зователь­ское пред­ложение.

От­клю­чить авто­заг­рузку с помощью Autorun Manager. Советую отклю­чать не толь­ко подоз­ритель­ные и будящие прог­раммы, но и дру­гие ред­ко исполь­зуемые при­ложе­ния, которые час­то висят в опе­ратив­ной памяти и кеше (вклад­ка нас­тро­ек «При­ложе­ния → Работа­ющие»). Так в памяти появят­ся дей­стви­тель­но час­то запус­каемые прог­раммы.

Вре­мен­но заморо­зить с помощью Titanium Backup или того же Autorun Manager. Это на слу­чай, если при­ложе­ние понадо­бит­ся в будущем или если речь идет о сис­темном при­ложе­нии, которое нежела­тель­но уда­лять (если, нап­ример, ты хочешь сох­ранить воз­можность обновле­ния по воз­духу). При замороз­ке при­ложе­ние про­падет из спис­ка прог­рамм, но физичес­ки не уда­лит­ся. Одна­ко сле­дует пом­нить, что замороз­ка некото­рых сис­темных при­ложе­ний может при­вес­ти к сбою в работе сис­темы, поэто­му дей­ству­ем осто­рож­но.

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

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

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

По­купай акку­муля­торы и заряд­ные устрой­ства толь­ко от офи­циаль­ного про­изво­дите­ля. Как показы­вает опыт, реаль­ная емкость дешевых акку­муля­торов гораз­до мень­ше ука­зан­ной, а дешевые заряд­ные устрой­ства в луч­шем слу­чае не выдадут заяв­ленный на них мак­сималь­ный ток, а в худ­шем — нав­редят акку­муля­тору повышен­ным нап­ряжени­ем или пуль­сиру­ющим током.

Ста­рай­ся заряжать устрой­ство не от USB-пор­та компь­юте­ра, а от сетевой заряд­ки. На стар­те заряд­ка акку­муля­тора идет более высоким током, который не может выдать USB-порт, в резуль­тате уве­личи­вает­ся вре­мя заряд­ки и умень­шает­ся ресурс акку­муля­тора (преж­де все­го это каса­ется мощ­ных акку­муля­торов с боль­шим заряд­ным током от 1 А).

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

SD- и SIM-кар­ты могут вли­ять на энер­гопот­ребле­ние. Если ты стол­кнул­ся с высоким раз­рядом, поп­робуй походить день без SD-кар­ты. Если пред­положе­ния под­твер­дятся — отформа­тируй кар­ту в самом телефо­не или при необ­ходимос­ти замени ее. SIM-кар­ты так­же луч­ше менять на новые каж­дые 3–4 года (бла­го это бес­плат­но).

Все советы были исполь­зованы мной лич­но и поз­волили уве­личить срок жиз­ни четырех моих Android-устрой­ств до 2–4 дней (в зависи­мос­ти от режима пов­седнев­ного исполь­зования)

-5
-6