Что такое вэйклоки и почему Вы должны принимать их во внимание?
Когда речь заходит про Андроид, самой обсуждаемой и комментируемой темой становится расход батареи/её продолжительность жизни. Если допустимо, что батарея расходуется при использовании телефона, то её медленный расход во время «ничего не делания» вызывает беспокойство.
Вэйклоки, или, если быть точнее, частичные вэйклоки, являются конфигурацией (или классом), помогающим разработчикам быть уверенными, что важные участки их кода не будут прерваны.
В основном, у телефона есть три состояния (упрощенно, не обижайтесь, разработчики ядер):
1. Бодрствование при включённом экране
2. Бодрствование
3. Сон (наиболее предпочтительное состояние Вашего телефона)
Переходы осуществляются от бодрствования при включённом экране к просто бодрствованию и, наконец, от бодрствования ко сну. Пока Вы используете Ваш телефон, он в состоянии (1) и не позволяет выйти из него, пока Вы взаимодействуете с устройством в диалоговом режиме. Если Вы прекращаете его использовать, телефон стремится перейти в (3) как можно быстрее.
И здесь проявляется действие вэйклоков: поскольку наши телефоны являются смартфонами, обработка процессов происходит в фоне. Некоторые из данных процессов важны, как, например, телефонный вызов, прослушивание музыки или синхронизация контактов.
Так как телефон пытается перейти из (2) в (3) и, с другой стороны, Вы не хотите вешать трубку пока разговариваете, приложение удерживает вэйклок для предотвращения перехода. Когда Вы вешаете трубку, частичный вэйклок отпускается и всё завершается (телефон переходит в сон).
Таким образом, частичные вэйклоки являются инструментом, а не тем, чему мы должны препятствовать по каким-либо причинам. Но есть случаи, когда конструкция приложения не испытана в настоящих жизненных условиях (напр., плохой сигнал или отсутствие покрытия) и вэйклоки производят негативный эффект, так как удерживаются без необходимости или слишком долго.
Better Battery Stats определяет эти вэйклоки и, используя Ваши знания или знания наших пользователей, Вы сможете разобраться в происходящем и найти стратегию изменения к лучшему.
Google
Google – основная причина ухудшения энергопотребления, поэтому агрессивные гугловские приложения по возможности нужно менять на аналоги, а лучше полностью отключить google.service framework и сервисы Google Play.
Автозапуск
Куча приложений пытается запуститься сразу с включением телефона, хотя Вам это не нужно. Есть простые программы, типа Startup Manager, в которых Вы можете исключать и добавлять приложения, запускаемые при загрузке. Есть более продвинутые приложения, такие как Autorun Manager, там можно отключить различные функции, связанные с запуском и работой приложений или вообще удалить или же заморозить различные приложения, включая системные. Можно также усыплять приложения такими программами, как, например, Greenify. Приведу пример борьбы с поиском Google, непонятно зачем периодически просыпающимся и будящим телефон, когда он должен спать – в Titanium Backup я преобразовал quicksearchbox в пользовательское приложение, затем усыпил в Greenify. Всё, он не пробуждает телефон, но прекрасно работает, когда я его запускаю.
Медиа
Сканер медиа может нанести очень серьёзный урон батарее.
Во-первых, стоит поставить приложение Rescan Media Root и запускать его после загрузки телефона (для удобства можно использовать вышеупомянутый Startup Manager, поместив программу в автозагрузку и забыв о ручном запуске). Приложение, правда, давно не обновлялось и его эффективность спорна, но на сердце становится немного спокойней.
Во-вторых, пустые файлы .nomedia, помещённые в папку с медиафайлами, не дают сканеру медиа рыться в данном месте. Но это работает, только если Вы используете проигрыватели, которые имеют встроенный сканер (Poweramp, Dice player). Если же используются вещи типа Google Music, то они не смогут увидеть медиа в папке, в которой имеется файл .nomedia, и, соответственно, воспроизвести что-либо.
При использовании Poweramp также надо соблюсти некоторые условности для снижения энергопотребления – отключить автоматическое сканирование, поместить музыку в одну папку, которую указать в настройках и сканировать вручную (естественно, с вышеуказанным файлом .nomedia). Кроме того, в настройках гарнитуры отключить воспроизведение и паузу при подключении/отключении наушников. Кстати, такие параметры в некоторых прошивках имеются и в настройках системы.
Да, некоторым помогает процедура "настройки"-"приложения"-"хранилище мультимедиа"-"очистить кэш/удалить данные".
Синхронизация и обновления
Нет необходимости держать данные параметры постоянно включёнными, где возможно, надо устанавливать более длинные интервалы, или обновлять и синхронизировать вручную.
Местоположение
Отключите как GPS, так и определение по сетям, включайте при необходимости. Отключите отправку данных о местоположении в настройках Google. Можно вообще удалить/заморозить networklocation.apk.
Wifi, Bluetooth
Включайте по мере необходимости. Для WiFi я, к примеру, использую Better Wifi on/off, включающую его вместе с разблокировкой экрана и отключающую после 30 с бездействия. Кроме того, если Вы заметили повышенное потребление заряда при использовании WiFi, стоит проверить настройки роутера, по крайней мере, понаблюдать, меняется ли что-то при других настройках/другом маршрутизаторе.
Мобильная сеть
Всегда лучше использовать параметр «только сети 2G», так аппарат прекратит постоянный поиск и перескакивание в условиях нестабильного сигнала.
Звуки
Отключите звуки клавиш, вибрацию при касании экрана, загрузке и так далее.
Яркость экрана
Яркость лучше установить на минимум, но для меня, допустим, это не подходит, я постоянно пользуюсь телефоном как на улице, так и в помещении, поэтому приходится использовать автояркость. Обои и темы лучше использовать тёмные, белый текст на чёрном, вроде как, меньше губителен для заряда, чем чёрный на белом.
Программы
Как я уже описал выше, не стоит пользоваться программами от Google, но есть и другие, потребляющие заряд – Facebook, различного рода виджеты с HD графикой, часы с секундными стрелками, живые обои, приложения, использующие push-уведомления, датчики и многое другое. Так, например, не стоит в Chrome в настройках для разработчиков ставить галочку "листать наклоном" - задействуется датчик и до свидания, заряд.
И что бы Вам не говорили, что Андроид сам завершает неиспользуемые программы, лучше выходите из них через кнопку «выход» (где имеется), или «назад», или закройте их сами, очистив окно недавних приложений.
Батарея
Зачастую, причина жора - банально вышедший из строя аккумулятор.
Проверка аккумулятора
1. Выньте аккумулятор из смартфона. Положите его на ровный стол. Посмотрите на просветы, попробуйте покрутить. Положите его другой стороной на ровный стол. Посмотрите на просветы, попробуйте покрутить. Можно приложить металлическую линейку и посмотреть наличие кривизны. Аккумулятор должен быть абсолютно ровный, без неровностей. Не должно быть никакой мягкости на ощуп. Если есть хоть один симптом - аккумулятор умирает. Если есть некие неровности на аккумуляторе или мягкий на ощуп, если есть нарушение герметичности упаковки аккумулятора - выкиньте аккумулятор, пока он не загорелся от потёкшего электролита (литий+кислород+нагрев=возгорание). Если всё в порядке, то переходите к следующему тесту.
2. Выключите режим энергосбережения. Установите AnTuTu Tester, зарядите смартфон до 100% и прогоните тест аккумулятора (тест на версии выше 1.3.5 будет отличаться от представленных ниже результатов). Скриншот надо делать сразу, иначе потеряются промежуточные данные по времени и температуре (как только перейдёте в другое меню, промежуточная статистика будет утеряна). Насколько я понял, для Galaxy S4 I9500 нормальное значение 310-350 попугаев для версии. Для I9505 надо поискать, но вряд ли будут существенные отличия.
3. Сразу после AnTuTu Tester ваш смартфон будет разряжен на ~19%. Выключите смартфон и зарядите в выключенном состоянии. По статистике, Galaxy S4 I9500 заряжается 2 часа c 19% до 100%.