Андроид и паразиты, жрущие батарею
Многие из вас помнят стоны товарищей, жалующихся, что у них андроид сжирает батарею за день или там за пару дней — при том, что у других людей такие же точно аппараты живут от одной зарядки по 20 суток. Серьезно — вот у меня пресловутый Nuqleo Quadrant живет две недели на одной зарядке практически всегда, а то и дольше, у BBird-а вообще был рекорд что-то там почти месяц, и я, честное пионерское, с аппаратом вообще ничего не делал — не крутил инженерное меню, не правил настройки через меню отладки, ничего. Разве что лишние приложения повыкинул, вроде гугелькарт (у меня стоит iGo MyWay) — через штатную возможность Андроида.
А ведь есть товарищи, у которых такой же аппарат садится за 2-3 дня.
Ну ладно, понятно, что физику не обманешь — и если вы говорите по телефону в условиях плохой связи, то телефон повышает мощность своего передатчика до максимума, пытаясь всё же пробиться к соте, и в таком режиме он жрет батарею нещадно (кстати, вы можете заметить, что и ваше ухо, к которому приложен телефон, разогревается, как кусок мяса в микроволновке — такой мощности идет излучение). С этим ничего не сделать, разве что можно ограничить максимальную мощность — но тогда связь будет хуже.
Похожим образом ведет себя и WiFi — поэтому постоянно держать его включенным это тоже прямая дорога к быстрой посадке аккумулятора. Впрочем, по умолчанию в смартфонах стоит установка «отключать WiFi в спящем режиме». Проверьте:
— в настройках выбираем вкладку Wi-Fi и включаем его — нажимаем кнопку Меню в правом верхнем углу (три точки, или нечто аналогичное) — жмем на пункт «Дополнительные опции» — жмем на пункт «Wi-Fi в спящем режиме», выбираем опцию «Только при питании от сети» (можно выбрать «Не выключать», если вы управляете включением-выключением WiFi вручную, с панельки на экране) — не забываем поставить галочку в пункте «Оптимизация WiFi», если ее там нет
Однако у некоторых бывает так, что вроде бы и не звонишь, и не говоришь — а аппарат жрет батарею. Советы стандартные: отключать на ночь передачу данных сети, Wi-Fi, GPS, автосинхронизацию и т.д. но кому-то это помогает, а кому-то нет.
В общем, такая ситуация означает, что аппарат не переходит в «спящий режим» из-за активности какого-то приложения. Так что вам придется вычислить «паразита», который ест батарею в фоне и не даёт аппарату уснуть.
Это можно сделать благодаря прелестному приложению SystemPanel. Программа имеет не только хороший мониторинг жизнедеятельности Android, но и встроенный Task Killer, информер в реальном времени по частотам, загрузке и количеству работающих ядер CPU, количеству свободной/занятой Ram и ROM памяти; температуре батареи и т.д.
Итак, что делаем:
1. Качаем и устанавливаем нужную версию SystemPanel (версия программы на русском языке). Современная бесплатная версия по-прежнему доступна в Google Market — но в ней теперь не работает мониторинг, который нам нужен, а за полный функционал авторы хотят денежку. Поэтому мы как условно честные люди будем юзать последнюю бесплатную, в которой всё есть. Если приблуда понравится — можете купить новую полную версию, поддержать авторов.
2. После запуска видим окно, где отображается информация (в верхнем левом углу три кружка) о загруженности CPU в процентах, количество свободной/занятой оперативной памяти, количество свободной/занятой встроенной памяти и чуть правее отображается шкала частоты процессора. Чуть ниже всего выше описанного мы видим текущие процессы приложений, которые находятся на данный момент в оперативной памяти. Все активные процессы и службы отображаются вверху, они же Активные приложения, Службы. Остальные кэшированные процессы отображаются внизу, они же Неактивные приложения (Кэш).
Внизу жмем кнопку Меню и по вашему желанию вы их можете Завершить все (важные службы и приложения с исключением не закроются). Чтобы отметить приложение в исключение вы должны тапнуть по нему и в след.окне нажать Исключить. Чтобы закрыть приложение которое не «убивается» через SystemPanel, тапаем по нему и в открывшемся окне внизу жмём Закрыть (либо Завершить) процесс, во всплывающем окне жмём Панель управления и там нажимаем Остановить (таким же образом закрывается и само приложение SystemPanel).
3. Теперь переходим к мониторингу. Жмем по трём кружкам в левом верхнем углу либо внизу Меню >> Мониторинг. Попадаем в окно Лайв (либо прямой эфир мониторинга системы), где видим состояние и количество активных ядер на данный момент, чуть ниже частоту CPU; инфографик нагрузки всех CPU; состояние сети; состояние RAM и ROM памяти, емкость и её остаток в mб; температуру датчиков. Ниже видим кнопки Лайв и История. История и будет нашим блокнотом, где будут записываться все изменения системы и её работы.
4. По умолчанию Мониторинг с историей выключен. Поэтому идём в Меню >> Настройки и там включаем Мониторинг (если он вам нужен). Остальные параметры в настройках настраиваете на свой вкус (думаю там и так всё понятно, разжёвывать не буду).
5. Ожидаем результатов (оставляем аппарат в покое на полдня) и смотрим, какой процесс не давал системе нормально уснуть. Ну и решаем, что с ним делать — обычно сносим нафиг приложение, которое его вызывает, и ищем его функциональный аналог без такой кривизны.
Ограничиваем мультизадачность, подчищаем хвосты кэшируемых процессов, повышаем автономность работы устройства от батареи и производительность для тяжелых приложений/игр.
Немного информации: после каждого запуска телефона или планшета на Android, наверное, многие замечали в оперативной памяти большое количество кэшируемых процессов от сторонних и системных приложений, которые мы вовсе еще не запускали. Откуда же они там взялись? Причем как бы мы их не «убивали» через всякие «таск киллеры» и «менеджеры очистки оперативки» — они всё равно через определенный промежуток времени лезут обратно в оперативку, забирая драгоценное свободное место.
Мультизадачность в Android штука, конечно, хорошая — но черезмерно прожорливая для телефона. Как это происходит: при запуске определенных служб Android OS, происходит автозапуск большинства приложений, которые работают в связке с ними (например автоматическая синхронизация, виджеты и т.д.), независимо от того — включаете вы устройство по-новой или же аппарат был включен, но вы им какое-то время не пользовались, он уснул, а теперь проснулся. Автозапуск в фоне кэширует процесс приложения (для более быстрого его запуска при необходимости), всё стартует «быстро, как в ойфоне» — но при этом кэшируемый процесс отнимает часть оперативной памяти. Всё бы хорошо, если бы таких кэшируемых процессов было штук 5, а если их образовалось с два десятка (а то и больше)? Плюс добавляем не нужные нам фоновые приложения (которые всё время что-то мониторят) — и получаем на выходе отнятые ими драгоценные проценты батарейки, то есть немного ухудшенную автономность и производительность устройства.
То же самое касается и кнопок «Выход» в большинстве приложений. Приложение закрывается только для вида, но кэшируемый процесс остается болтаться в памяти (система выкидывает их из памяти постепенно, когда убеждается, что вам это приложение не скоро понадобится). И после запуска и закрытия подобным образом десятка установленных приложений — получаем на выходе малое количество свободной оперативной памяти (хотя все приложения вроде бы закрыты).
Как включить нам то, что написано в шапке раздела:
1. Идём в «Настройки» устройства (обычно это иконка в виде шестерёнки), выбираем внизу вкладку «Для разработчиков». 2. Листаем в самый низ, выбираем пункт «Лимит фоновых процессов» и выставляем ограничение на ваш выбор.
У меня стоит не больше трёх, в играх ставлю не более одного, на ночь можно ставить вообще без фоновых процессов (за 8-10 часов в спящем режиме съедает меньше одного процента батареи, а без такой регуляции обычно кушает 3-4% за тот же промежуток времени).
Если хотим вернуть как было — выставляем «Стандартное ограничение».
Как это работает: OS Android более жёстко следит за оперативной памятью и её фоновыми процессами, держа её в чистоте и порядке на ограничениях, определенных пользователем.
P.S. После перезагрузки (либо повторного включения устройства) пользовательские настройки многозадачности слетают на стандартные. Это не глюк прошивки! Так реализован сброс многозадачности на всех устройствах, независимо от бренда и версии Android. Поэтому после перезагрузки идём обратно в настройки разработчиков и выставляем то значение, которое вас устраивало до перезагрузки устройства.
Я, на самом деле, этим всем не пользуюсь — но для людей, понаставивших себе на андроид кучу всякого гумна, да еще с рекламными модулями внутри — это бывает полезно.