Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
< >
1 2 3 4 5

Все, що потрібно знати про енергозбереження Android-гаджетів

  1. Зміст статті Сучасні смартфони та планшети набагато більше нагадують повноцінний ПК, ніж простий...
  2. Автоматизація
  3. безсоння
  4. типові ради
  5. П'ять шкідливих порад з енергозбереження
  6. Андервольтінг
  7. INFO
  8. замість висновків

Зміст статті

Сучасні смартфони та планшети набагато більше нагадують повноцінний ПК, ніж простий пристрій для спілкування та отримання інформації. Тепер їх оснащують чотирьохядерними процесорами з частотою в 2 ГГц, гігабайтами оперативної пам'яті і Full HD екранами. Проблема тільки в тому, що для харчування всіх цих потужностей використовується не кабель від розетки, а невеликий акумулятор, ємності якого рідко вистачає більш ніж на день. Що ж, давай подивимося, як це виправити.

У статті я спробую розібратися, чи дійсно сучасні смартфони споживають занадто багато енергії і насправді їм потрібно набагато менше. Спочатку розглянемо методи заощадження енергії, які вже застосовуються в операційній системі Android, і наскільки сильно вони дозволяють знизити загальні витрати енергії. Потім спробуємо застосувати популярні способи енергозбереження, про які часто говорять на форумах і пишуть в блогах, і подивимося на результат. В кінці застосуємо важку артилерію у вигляді таких методів, як андервольтінг і даунклокінг. Поїхали.

Стандартні засоби енергозбереження

Серед користувачів смартфонів витає міф про те, що насправді мобільні пристрої повинні жити набагато довше, ніж зараз, і справжня проблема не в потужностях, а в головотяпство розробників Android і iOS - нібито вони просто не хочуть оптимізувати ОС через лінь або змови з виробниками заліза, яким необхідно продавати гигагерци і гігабайти. ОК, витратимо свого часу на читання документації і спробуємо розібратися. Отже, чотири міфи про те, чому Android з'їдає так багато енергії.

  • Java - гальмо, який пожирає процесор і пам'ять. Перше, що слід запам'ятати: в Android немає Java. Тут використовується реєстрова віртуальна машина Dalvik, розроблена спеціально для embedded-пристроїв. Про перевагу реєстрової ВМ свого часу вже писали розробники Plan9 / Inferno, і посилання на їх статті є в кінці. Якщо коротко, то реєстрова ВМ відрізняється від класичної стековой Java меншими вимогами до оперативної пам'яті і меншою надмірністю, тобто дозволяє виконувати код швидко, не вижірая пам'ять. Друге: велика частина «важкого» коду (мультімедіакодекі, алгоритми обробки графіки, криптографія та інше) в Android написана на C, що дозволяє виконувати його так само швидко, як в будь-який інший ОС. Dalvik-код використовується переважно для визначення логіки додатків, а завдяки HotSpot JIT код всередині Dalvik виконується не набагато повільніше, ніж код на Сі.
  • Android не вміє ефективно працювати з обладнанням. Це повна нісенітниця. Android заснований на ядрі Linux, в якому код підтримки обладнання відшліфований якщо не до блиску, то близько до того. В ОС реалізовано безліч технік оптимізації роботи з обладнанням та енергозбереження, таких як відкладений скидання буферів на диск з об'єднанням, грамотний планувальник завдань і алгоритм енергозбереження процесора, ефективні алгоритми енергозбереження для модулів Wi-Fi, 3G, LTE і Bluetooth (4.0 Low Energy), batch-метод опитування сенсорів (реалізовано в 4.4 KitKat). Без всього цього Android-смартфон не прожив би і п'яти годин.
  • Ядро Linux надлишково в мобільній техніці. У ядра Linux дуже гнучка система збирання, яка дозволяє включити в результуючий образ тільки те, що реально потрібно в конкретному пристрої. Ключові підсистеми ядра від цього, звичайно, не стануть простішими (принаймні базовий шар), багато в чому вони занадто надмірні для умов мобільної техніки, але це та ціна, яку доводиться платити за те, що Android взагалі існує.
  • ** Android занадто складний і важкий. ** Ймовірно, багато компонентів ОС можна серйозно оптимізувати або навіть зовсім прибрати (в исходниках багато дублюючого коду), і Google таки зайнялася цією роботою з випуском 4.4, проте не варто чекати, що всі ці оптимізації скільки -небудь серйозно продовжать життя смартфону. Зрештою, один день життя гаджета був реальністю і за часів вельми простий і легкої версії 1.5.

Головна «проблема» не тільки Android, але і всіх сучасних мобільних ОС зовсім не в їх тяжкості і неоптімізірованностью, а в тому, що сучасний смартфон - це вже не статичний гаджет начебто Nokia N95, який дозволяє запустити аську і пограти в Сокобан, а система , що живе своїм життям. Незалежно від того, спить девайс чи ні, він продовжує збирати пошту, отримувати повідомлення з календаря, Facebook, Instagram, очікувати дзвінки в Skype і синхронізувати файли з хмарою (так, наприклад, робить додаток Dropsync). Вся ця робота не може не відбитися на часі роботи від батареї, і саме в цю сторону слід дивитися, кажучи про продовження життя від акумулятора.

Автоматизація

Для збереження заряду акумулятора настійно рекомендується використовувати додатки для автоматизації, такі як Tasker або Locale. З їх допомогою можна налаштувати автоматичне включення режиму польоту ночами, відключення передачі даних при досягненні певного рівня заряду батареї, зниження яскравості до мінімуму у вечірній час і багато іншого. Практично будь-яка програма для економії енергії з маркету може бути замінена цими інструментами, при тому що ти будеш мати повний контроль над тим, що відбувається.

Практично будь-яка програма для економії енергії з маркету може бути замінена цими інструментами, при тому що ти будеш мати повний контроль над тим, що відбувається

Tasker вміє управляти безліччю налаштувань в повністю автоматичному режимі

безсоння

Перед тим як перейти до розповідей про техніках оптимізації, я повинен налити ще трохи води і розповісти про те, що таке wakelock і suspend. Як і будь-яка мобільна ОС, Android працює за принципом «зберегти стільки енергії, скільки можливо» і тому в будь-який момент прагне перевести процесор і інші компоненти пристрою в енергозберігаючий режим. Такий механізм роботи дозволяє пристрою віддавати процесорні ресурси додатків в міру необхідності, а весь інший час перебувати в режимі низького споживання енергії. Коли користувач натискає кнопку вимикання і екран гасне, Android переводить смартфон в режим suspend, відключаючи процесор і залишаючи напруга тільки на оперативній пам'яті (аналог ACPI S3). Таким чином вдається домогтися ще більшої економії, яка за певних умов може досягати 99%.

Щоб вже запущені програми, які повинні продовжувати роботу навіть після виключення екрану (музичний плеєр, синхронізація файлів та інше), які не заморожувалися разом з відходом в suspend, використовується механізм під назвою «частковий wakelock». Працює він дуже просто: поки є додатки, які встановили wakelock, девайс не піде у suspend і додатки зможуть нормально працювати. На додаток додатки можуть використовувати AlarmManager, який дозволяє виводити пристрій з suspend в потрібні моменти з метою виконання певної роботи (так роблять віджети, наприклад). AlarmManager теж використовує wakelock для утримання процесора в режимі неспання.

Зловживання цими механізмами може привести до надмірного витраті енергії незалежно від того, в якому режимі роботи знаходиться гаджет. На щастя, маючи root, інформацію про статистику використання wakelock'ов отримати досить просто. Найзручніший спосіб - за допомогою Wakelock Detector. Це безкоштовний додаток, яке показує загальну кількість wakelock'ов з сортуванням по додатках.

Погляньмо, наприклад, що показує Wakelock Detector на моєму Nexus 4 (скріншот Wakelock Detector). Найперша рядок екрану - це загальний час неспання пристрою за один день і шість годин (з моменту повної зарядки). П'ять самих ненажерливих додатків - це Dropsync, OnLive, Google Пошук, Gmail і Carbon. Всі разом вони тримали смартфон в режимі неспання майже годину, а це дуже багато.

Wakelock Detector

На жаль, жодне з цих додатків я видаляти не хочу, і тому мені доведеться з'ясувати, для яких конкретно цілей вони використовували wakelock, і спробувати виправити цю проблему за допомогою налаштувань самих додатків. Натискаємо на Dropsync і бачимо, що він ставив wakelock з тегом DropsyncWakeLock 15 раз (що в сумі призвело до 32 хвилинам неспання) і один раз AlarmManager (2 секунди). Що таке AlarmManager, ми вже знаємо, а ось DropsyncWakelock цікавіший. Програміст має право давати довільні імена wakelock'ам, але неважко припустити, що цей використовується для виконання автоматичної синхронізації з Dropbox (Dropsync призначений саме для цього). Мені постійна синхронізація не особливо потрібна, і я можу запускати її самостійно. Тому я просто йду в налаштування Dropsync і відключаю автоматичну синхронізацію. Вуаля, телефон прокидається рідше і не на такі довгі проміжки часу.

Dropsync і його довгі wakelock'і

OnLive можна пропустити, так як 18 хвилин неспання були викликані некоректним закриттям програми (з нього треба виходити за всіма правилами). Далі йде «Google Пошук», додаток, яке, крім усього іншого, включає в себе Google Now. Тапа по ньому і бачимо, що два найбільш активно використовуваних wakelock'а - це NlpWakeLock і EntriesRefresh_wakelock. Це вже складніше, і розібратися, що ж насправді відбувається при їх установці, досить складно. Тому довго утримуємо палець на імені wakelock'а, вибираємо «Пошук» і дивимося, що знайшов браузер. Вже на другий знайденої сторінці є пояснення, що NlpWakeLock встановлюється в той момент, коли змінюється положення смартфона щодо мережі (3G, Wi-Fi), після чого Google Now відправляє інформацію про місцезнаходження на сервер. Другий wakelock, судячи з усього, використовується для поновлення карток в Google Now. Одночасно вирішити проблему ненажерливості в обох випадках можна, просто відключивши «Google Пошук» в «Налаштування -> Додатки -> Все». Для вирішення першої - вимкнути визначення місцезнаходження в налаштуваннях Android.

Gmail змушує смартфон не спати за допомогою wakelock'а з промовистою назвою sync /gmail-ls/com.google/[email protected]. Очевидно, що він встановлюється на час автоматичної синхронізації пошти, тому знизити енерговитрати можна, просто відключивши синхронізацію Gmail в «Налаштування -> Облікові записи -> Google -> [email protected]». З іншого боку, робити цього я не хочу і краще потерплю три хвилини неспання за півтора дня.

З іншого боку, робити цього я не хочу і краще потерплю три хвилини неспання за півтора дня

Для синхронізації теж потрібна установка wakelock

типові ради

Пройшовши за списком найбільш енерговитратних додатків за допомогою Wakelock Detector, легко зрозуміти, що основні причини пробудження пристрою - це різні види синхронізації і регулярне оновлення інформації про місцезнаходження. Це означає, що, відключивши ці функції повністю, можна позбутися від більшості випадків пробудження і серйозно заощадити батарею.

Я б рекомендував спершу зайти в налаштування Google-аккаунта ( «Налаштування -> Облікові записи -> Google -> [email protected]») і акаунтів інших додатків і відключити всі непотрібні види синхронізації. Мені, наприклад, не потрібні синхронізація календаря, стандартного браузера, контактів Google+ і «даних додатків», так що я можу спокійно позбутися від них. Так само варто вчинити і з усіма іншими зареєстрованими на смартфоні акаунтами, а в налаштуваннях сторонніх додатків відключити автоматичну синхронізацію (тобі дійсно потрібна автосінхронізація Twitter і RSS?). Рідко використовувані додатки краще видалити зовсім.

Останні версії Android не дозволяють вимикати визначення місцезнаходження повністю, але зате можуть використовувати дуже консервативний і майже не впливає на життя смартфона режим під назвою (сюрприз!) «Економія заряду батареї», який оновлює інформацію тільки тоді, коли відбувається підключення до Wi-Fi- мережі або перехід на іншу стільникову вишку.

Якщо додаток садить акумулятор, а видаляти його не можна і в настройках немає опцій синхронізації або автообновления, то його можна просто заморозити. Робиться це за допомогою чудового додатки під назвою Greenify. Воно пригнічує можливість застосування прокидатися самостійно і змушує його працювати тільки тоді, коли ти сам цього захочеш. Користуватися дуже просто. Запускаємо Greenify, натискаємо на кнопку + у лівому нижньому кутку і бачимо, які програми найдовше працюють в фоні. На скріншоті видно, що найбільш ненажерливі - це OTransfer Target, який використовується для віддаленого включення переадресації (воно взагалі постійно спить), а також Beautiful Widgets і Carbon, які періодично прокидаються для різного роду синхронізацій. OTransfer Target я ставив для тесту, так що можу спокійно його видалити (воно, до речі, також є серед «лідерів» в Wakelock Detector). Beautiful Widgets прокидається для оновлення віджета на робочому столі, тому його я залишу в спокої. А ось Carbon, який посів п'яте місце за версією Wakelock Detector, можна заморозити. Для цього достатньо просто тапнуть по імені і натиснути галочку в правому верхньому куті.

Greenify підкаже, які програми частіше будять пристрої

П'ять шкідливих порад з енергозбереження

  1. Вбивство фонових процесів за допомогою таск-кілера. Одна з найбезглуздіших ідей з усіх, що тільки можуть прийти в голову. Слід просто запам'ятати: фонові процеси не споживають енергію, зазвичай її споживають запущені ними сервісні служби, які або взагалі не вбиваються таск-кілерами, або мають здатність до самовоскрешенію. А ось вбивство самих фонових додатків призводить до необхідності їх повторного запуску, на що енергія таки витрачається.
  2. Відключення Wi-Fi вдома. У режимі економії енергії (коли смартфон спить) модуль Wi-Fi споживає дуже мало енергії, настільки мало, що на включення і виключення модуля часто витрачається набагато більше. Має сенс хіба що на планшеті, який береш в руки два-три рази на день, щоб почитати новини або книгу.
  3. Автоматичне перемикання між 2G і 3G. Аналогічна історія. При скачках між типами мереж відбувається повторний пошук вишок і повторне ж з'єднання, а в цей час радіомодуль працює на повну потужність. Додатки, автоматично включають 2G під час сну, в більшості випадків призводять до ще більшого витраті енергії.
  4. Додатки з назвами на кшталт Ultimate Battery Saver. У 99% (якщо не в ста) випадків це або плацебо, або все той же таск-кілер, забезпечений механізмом, який відключає різні компоненти смартфона при досягненні певного рівня заряду. Спочатку відбувається переклад на 2G і відключення GPS, потім відключається інтернет, а під самий кінець телефон переводиться в режим польоту. Проблема тут в тому, що описаний механізм роботи швидше заважає і все це зручніше зробити самому в потрібний час.
  5. Калібрування батареї за допомогою рекавери. З давніх-давен існує міф про те, що видалення файлу /data/system/batterystats.bin за допомогою CWM призводить до скидання налаштувань батареї, так що вона починає показувати «правильніший» рівень заряду. Міф настільки в'ївся в уми, що деякі індивідууми почали робити «калібрування» щодня, заявляючи, що так можна продовжити життя батареї і навіть підвищити її ємність. Насправді файл потрібен для збереження статистики використання енергії (тієї самої інформації з «Налаштування -> Батарея») між перезавантаженнями і ні на що не впливає.

Андервольтінг

Тепер поговоримо про важкої артилерії. Ні для кого не секрет, що один із самих ненажерливих компонентів смартфона - це процесор. Його енергоспоживання може бути навіть більше споживання екрану (а точніше, його підсвічування), і все тому, що він працює на дуже високих частотах, які вимагають подачі високих напруг. Спочатку може здатися, що зберегти життя від батареї в цьому випадку можна, просто знизивши максимальну частоту роботи процесора і відключивши «зайві» ядра. Однак, швидше за все, це ні до чого не приведе: незважаючи на знижене споживання енергії, процесор буде виконувати код довше, і в кінцевому рахунку енергоспоживання може навіть зрости.

Однак, швидше за все, це ні до чого не приведе: незважаючи на знижене споживання енергії, процесор буде виконувати код довше, і в кінцевому рахунку енергоспоживання може навіть зрости

Це цілком стандартна ситуація

Замість цього слід провести операцію андервольтінга, тобто просто знизити максимальну подається напруга для всіх можливих частот. Для цього необхідно встановити кастомними ядро ​​підтримує цю функцію. Про те, як це зробити і яке ядро ​​вибрати, я у всіх подробицях розповідав в одному з попередніх номерів журналу, тому не буду повторюватися, а просто скажу, що якщо у тебе один з нексусов, то досить встановити franco.Kernel updater і з його допомогою завантажити і встановити ядро. Все відбувається в автоматичному режимі.

Далі встановлюємо платну версію Trickster MOD (безкоштовно не зберігає налаштування напруги) або CPU Adjuster; для ядер franco також підійде платний franco.Kernel updater. Переходимо на сторінку регулювання вольтажа (в Trickster MOD потрібні налаштування знаходяться внизу четвертої сторінки) і починаємо акуратно збавляти по 25 мВ для кожної з можливих частот процесора. Після зменшення звертаємо додаток і деякий час тестуємо смартфон, запускаючи важкі додатки, потім знову зменшуємо і знову тестуємо.

До і після тюнінгу вольтажа

У 90% випадків процесор без всяких наслідків витримає зниження на 100 мВ, а це дасть нам додатковий годину-дві в режимі активного використання. Якщо тобі пощастить, то процесор зможе витримати і -150, а в особливо щасливих випадках навіть -200, все залежить від партії процесора і конкретного екземпляра. Занадто сильне заниження напруги призведе до перезавантаження, після якої досить буде підняти напругу на 25 мВ і зберегти значення в дефолтовая профілі (в Trickster MOD це кнопка «Профіль» відразу над значеннями).

INFO

Смартфон з AMOLED-екраном буде працювати довше, якщо використовувати додатки з чорним фоном. Щоб зробити системні програми темними, можна використовувати прошивку AOKP або один з модулів Xposed.

Найчастіше Механізм автоматичного регулювання яскравості екранах віставляє Занадто Високі значення. Якщо управляти яскравістю вручну, можна продовжити життя смартфона ще на пару годин.

Просунуті функції фірмових прошивок деяких виробників смартфонів, такі як управління жестами, голосове управління або автоматичне включення екрану, призводять до надмірної витрати заряду акумулятора. По можливості їх слід відключити.

замість висновків

В цілому описані в статті методи можуть продовжити життя від батареї як мінімум на півдня (при середній інтенсивності використання), а при тотальному відключенні всіх видів синхронізації і видаленні непотрібних додатків - ще більше. Виконати рекомендації не важко, а ефект значний.

Обі дійсно потрібна автосінхронізація Twitter і RSS?