Блокировка сна для Android

Eсть универсальные методы увеличения продолжительности работы мобильных устройств

Телефоны постоянно совершенствуются, уменьшаются в весе, становятся более тонкими, их процессоры становятся более мощными, экраны увеличиваются в размере. И при всем таком технологическом прогрессе возрастает нагрузка на аккумуляторы.

Производители телефонов постоянно стараются продлить работу аккумуляторов в устройствах. Но при каждодневном использовании батареи без подзарядки служат также в среднем один-два дня. Тем более, что растет и функциональность устройств, ресурсоемкость программ, частота использования телефонов. Это все приводит к еще более быстрому истощению батарей. Достаточно запустить какую-либо программу на телефоне, просидеть несколько часов в интернете, и аккумулятор о себе напомнит, запросив подзарядку.

В то же время есть определенные универсальные методы увеличения продолжительности автономной работы мобильных устройств. Рассмотрим эти методы подробнее.

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

2. Отключите режим «Автоматический поворот экрана» . Данная полезная функция также совсем не будет востребована постоянно, в тоже время, акселерометр - датчик в телефоне, реагирующий на поворот телефона из горизонтального положения в вертикальное и обратно, будет расходовать значительные объемы энергии, которую можно было бы потратить на более нужные, часто необходимые телефонные разговоры.

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

4. Чистим оперативную память телефона . Следует после работы в каком-либо приложении для телефона не забывать его закрывать. Оставаясь в оперативной памяти телефона, приложения продолжают постоянно задействовать системные ресурсы аппарата, тем самым расходуя заряд батареи и сокращая период автономной работы устройства. Аналогичное данное замечание касается и так называемых установленных «живых обоев».

5. При работе на устройствах с дисплеем типа Amoled выгодно установить полностью однотонные черные обои на экран. В Amoled энергопотребление прямо зависит от уровня яркости экрана. Такие экраны требуют больше энергии, если установлены яркие, светлые обои, они потребляют энергии даже больше, чем жидкокристаллические варианты. Сокращайте яркость экрана, при этом применяйте темный фон заставки.

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

7. Отключайте модули Bluetooth и Wi-Fi . У современных аппаратов есть функция автоматического отключения данных модулей, но отключаются они только при переходе аппарата в спящий режим. Следовательно, надежнее отключать их вручную. Аналогично при неиспользовании аппарата отключите все онлайн-сервисы, электронную почту. Также выгодно для экономии заряда отключить и все системные напоминания и сообщения. Отключите аппарат от сетей 3G. Такие простые операции позволят продлить работу телефона без подзарядки на несколько часов.

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

9. Соблюдайте рекомендованные производителем телефона температурные режимы . Комфортная температура, а для телефона это в районе 15 - 25 градусов, продлит срок работы аккумулятора, снизит скорость его произвольной разрядки, предотвратит неполадки в устройстве.

10. Установите дополнительные приложения , позволяющие осуществлять полный цикл перезарядки аккумулятора малым током. Это, например, BatteryDoctor, программа реализует бережный контроль за расходом заряда батареи, а это положительно сказывается на времени автономной работы телефона от одной зарядки.

Таким образом, предложенные доступные каждому советы позволят гарантированно продлить работу телефона без подзарядки до четырех и даже до шести часов.

В отличие от iOS и Windows Phone, на Android в фоновом режиме может работать множество приложений и сервисов. Все они создают дополнительную нагрузку на оперативную память и процессор, а значит, расходуют драгоценную энергию. Причем, они работают даже тогда, когда не нужно — например, ночью, в то время как вы спите.

Решить проблему чрезмерного потребления Android-приложениями ресурсов устройства можно несколькими способами: запретить приложениям, которыми вы пользуетесь редко, запускаться вместе с загрузкой системы или более радикально - отключать Wi-Fi, мобильный интернет и большинство фоновых процессов.

1. Установите его из Google Play, запустите.

2. Зайдите в раздел Phone Boost, нажмите кнопку «Autostart Manager», там показаны все приложения, которые запускаются при включении устройства.

3. Просмотрите список и отключите автозапуск тех приложений, которые, как вы считаете, не должны все время работать фоном.


Теперь зайдите в системные настройки, откройте менеджер запущенных приложений и завершите работу тех, которые в ближайшее время вам будут не нужны.


Более серьезной экономии ресурсов можно добиться с помощью приложений, которые при выключении экрана уводят устройство в глубокий сон. Одно из таких приложений - . Оно позволяет отключить модуль 3G, интернет, Bluetooth, синхронизацию данных и сильно ограничить работу фоновых процессов.

Как работать с Deep Sleep Battery Saver:

1. Установите его из Google Play, запустите и предоставьте ему root-права.

2. При желании смените язык интерфейса на русский.


3. Зайдите во вкладку «Профиль» и выберите, что будет происходить, когда экран вашего устройства выключен. Чем более строгая экономия, тем меньше ресурсов устройства будет расходоваться.

4. В настройках Deep Sleep Battery Saver можно выбрать приложения для «белого списка» - они смогут работать фоном, даже если активирован глубокий сон.

При использовании Deep Sleep Battery Saver время автономной работы устройства может продляться в разы, и при этом смартфон не отвлекает вас всякий раз, когда вам приходит новое письмо или сообщение. Правда, уведомления будут приходить с задержкой - только когда приложение включит интернет.

На многих смартфонах и планшетах под управлением Android экран отключается через 30 секунд бездействия пользователя. Как правило, это оптимальный вариант, при котором можно комфортно пользоваться устройством и экономно расходовать заряд его батареи. Но бывают моменты, когда необходимо отключить спящий режим при работе какого-либо приложения. Так как штатными средствами Android сделать это невозможно, мы расскажем, как это реализовать другими способами.
Для начала, давайте определимся, зачем нам может понадобиться отключать тайм-аут экрана, ведь лишнее время работы экрана приводит к быстрой разрядке аккумулятора? Например, вы читаете статью в браузере или смотрите видео в YouTube, делаете паузу и через минуту ваше устройство уже спит крепким сном. Или другой вариант – вы используете смартфон в качестве пульта управления или демонстрируете слайды. Таким образом, самыми распространенными случаями, когда требуется постоянно активный экран, являются:

  • чтение электронных книг, документов, другой текстовой информации;
  • просмотр фото- и видеоматериалов;
  • демонстрация чего-либо на экране смартфона;
  • игры, геймплей которых не требует активных действий;
  • работа с GPS и картографическими программами.
Некоторые программы и игры отлично справляются с этой задачей самостоятельно. Обычно, во многих читалках, видеоплеерах и других приложениях в настройках есть опция, препятствующая засыпанию устройства. Но далеко не во всех. В таких случаях проще всего в системных настройках выставить более длительный тайм-аут экрана для активного режима. Но, согласитесь, это даже не столько неудобно, сколько нерационально. Поэтому мы поступим по-другому и будем использовать сторонние средства для тонкой настройки блокировки экрана.

Способ 1. Модуль Xposed

Этот способ требует наличие на устройстве и установленной специальной среды выполнения . Модуль, который нам необходимо подключить к Xposed Framework, называется Stay Awake – Keep On Screen . Он позволяет легко отключать блокировку экрана на определенных приложениях и возвращаться к предыдущим настройкам тайм-аута экрана.

Как загрузить и установить Stay Awake – Keep On Screen:
После всех этих действий можно использовать функцию включения/отключения спящего режима на системном уровне для каждого приложения. Работает это очень просто. Чтобы запретить экрану отключаться, просто зажмите обе кнопки громкости в любом активном приложении. Вы увидите надпись «Stay Awake Enable» – это означает, что экран в текущем приложении будет включен постоянно.

Использование этого модуля удобно тем, что он запоминает, в каких приложениях вы отключили тайм-аут экрана, и можно в любой момент вернуть все обратно простым нажатием кнопок громкости. Работает эта функция даже на уровне родного лаунчера.

Способ 2. Приложения

Это приложение в русскоязычном Google Play известно под названием «Негаснущий экран». Маленькая утилита с приятным дизайном имеет одну единственную функцию – не давать устройству переходить в спящий режим при работе выбранных приложений. Чтобы ее активировать, просто запустите Keep Screen On и отметьте необходимые приложения, во время работы которых вы хотите оставить экран постоянно включенным.


Утилита умеет работать со всеми установленными на устройстве программами, включая системные службы. Преимуществом Keep Screen On является простота использования и тот факт, что приложение абсолютно бесплатное и не содержит рекламы.


Еще одно бесплатное, но более функциональное приложение под названием Stay Alive!, которое также умеет управлять тайм-аутом экрана. Утилита позволяет задать правила отключения экрана не только для выбранных приложений, но и для тех программ и системных служб, которые не были отмечены. При этом Stay Alive! не имеет никаких фильтров или дополнительных опций для приложений и показывает все установленные на устройстве программные компоненты в общем списке. А если у вас установлено, к примеру, 100+ приложений, тогда лучше воспользоваться поиском. Особенностью утилиты является то, что она позволяет не отключать экран, даже когда конкретная программа не запущена, но работает в фоне.


Stay Alive! имеет несколько режимов работы:
  • активный режим во время зарядки устройства;
  • активный режим во время зарядки и при работе от аккумулятора;
  • режим паузы (неактивный режим);
  • автоматический режим с правилами для выбранных приложений.
Переключаются они с помощью небольшой панели, которая прячется за шторкой.


Стоит признать, Stay Alive! выполняет свою основную задачу на 5+. Приложение не просто запрещает устройству уходить в спящий режим, а предлагает индивидуальные настройки для различных условий. Например, можно запретить экрану выключаться при зарядке, при подключении к автомобильной док-станции или вообще полностью отключить тайм-аут экрана. Помимо этого, Stay Alive! может приостанавливать свое действие, когда заряд батареи достигает заданного процента.

Среди дополнительных функций есть очень полезная опция «Allow the screen to dim», которая позволяет затемнять экран, но не выключать его полностью.


Единственный недостаток Stay Alive! – это платные функции, самой важной из которых является автозагрузка приложения. Так что, если вы пользуетесь бесплатной версией, вам придется каждый раз после включения/перезагрузки устройства вручную запускать утилиту.

А как вы настраиваете тайм-аут экрана вашего мобильного устройства? И приходилось ли вам запрещать экрану отключаться в определенных программах?

Давным-давно, когда Android еще не был мейнстримом, любой разработчик мог написать приложение, которое сможет спокойно висеть в фоне и в режиме реального времени обмениваться данными с сервером. Но чем дальше, тем более жесткие техники сохранения энергии применяет Google, и сегодня так просто сетевое реалтаймовое приложение уже не реализуешь. Однако есть несколько трюков, которые позволяют это сделать.

Давай представим, что у нас есть приложение, а у него, в свою очередь, есть служба (service), которая должна постоянно висеть в фоне, обрабатывать команды, полученные от сетевого сервера, и отправлять ответы. Связь с сервером, как это и положено мобильным устройствам, поддерживается с помощью long poll запросов, то есть приложение подключается к удаленному серверу и ждет, пока тот отправит что-либо в ответ, а потом переподключается и ждет снова. Это эффективный и очень экономный в плане заряда батареи способ, который в том числе используется в механизме push-уведомлений самого Android.

В теории все выглядит отлично, архитектура приложения абсолютно правильная, вот только, если начать его тестировать, вскроется несколько очень неприятных моментов.

Режимы энергосбережения Android

В Android 4.4–5.1 (версии ниже мы рассматривать не будем - они стремительно устаревают) служба будет работать и моментально откликаться на запросы сервера, но только до тех пор, пока экран включен. Через несколько секунд после отключения экрана смартфон перейдет в режим сна (suspend), и промежуток между отправкой запроса и ответом нашего приложения будет составлять примерно минуту. Это срок между maintenance-пробуждениями устройства, и повлиять на него мы не можем.

В Android 6.0–7.1 ситуация будет примерно такой же, однако спустя примерно час смартфон перейдет в так называемый . После этого ответ от приложения можно либо не получить вовсе, либо получить спустя час или два. А все потому, что в режиме Doze смартфон фактически не дает работать сторонним приложениям и их службам и полностью отрезает им доступ в Сеть. Управление они могут получить только на короткий промежуток времени спустя час после перехода в режим Doze, затем два часа, четыре часа, со все большим увеличением промежутков между пробуждениями.

Хорошие новости в том, что Doze работает общесистемно и включается спустя час после отключения экрана и только если не трогать смартфон (в 7.0–7.1 можно и трогать), а отключается сразу после разблокировки смартфона, подсоединения к заряднику или движения смартфона (опять же не в 7.0–7.1). То есть можно надеяться на то, что хотя бы днем наш сервис будет работать нормально.

Плохие же новости в том, что, помимо Doze, в Android 6.0–7.1 есть и другой механизм энергосбережения под названием App Standby. Работает он примерно так: система следит за тем, какие приложения использует юзер, и применяет к редко используемым приложениям те же ограничения, что и в случае с режимом Doze. При подключении к заряднику все переведенные в режим Standby приложения получают амнистию. К приложениям, имеющим уведомление или права администратора (не root), режим Standby не применяется.

Итого, в Android есть сразу три механизма, с которыми придется бороться:

  • Suspend - обычный режим энергосбережения, может замедлить получение ответа от устройства примерно на одну минуту;
  • App Standby - агрессивный режим энергосбережения, способный замедлить получение ответа на сутки;
  • Doze - агрессивный общесистемный режим энергосбережения, который применяется ко всем приложениям.

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

Сценарий 1. Небольшая задержка в ответе некритична, переход в Doze некритичен

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

Два самых простых способа добиться этого - либо вывести службу на передний план (foreground service), либо дать приложению права администратора устройства. Начнем с первого варианта.

Foreground service

Foreground service в терминологии Android - это служба, которая имеет уведомление в шторке. Система относится к таким службам гораздо бережнее. Например, при нехватке памяти она будет убита в последнюю очередь, она не будет убита при смахивании приложения в меню управления запущенными приложениями, и да, к ней не будет применен режим Standby.

Создать foreground service очень просто. Достаточно вставить в код службы примерно такие строки:

Intent notificationIntent = new Intent(this, ExampleActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Notification notification = new Notification.Builder(this) .setContentTitle(getText(R.string.notification_title)) .setContentText(getText(R.string.notification_message)) .setSmallIcon(R.drawable.icon) .setContentIntent(pendingIntent) .setTicker(getText(R.string.ticker_text)) .build(); startForeground(0, notification);

Этот пример создает уведомление, при тапе на которое будет запущена ExampleActivity, в конце с помощью startForeground() служба переводится в статус foreground.

Права администратора

Другой вариант - это дать приложению права администратора. Такие права обеспечивают возможность управлять политикой формирования паролей экрана блокировки, делать удаленную блокировку и вайп устройства.

В свое время Google ввела понятие «администратор устройства» для компаний, которые хотели бы управлять смартфонами своих сотрудников. То есть компания создает приложение, которое получает права администратора и может заблокировать или сбросить телефон после команды от сервера. Именно поэтому приложение с правами администратора не переходит в режим Standby, ведь команда на блокировку может прийти в любой момент.

Получить, а точнее запросить права администратора опять же просто. Для начала нам понадобится пара колбэков, которые будут вызваны после того, как права получены или отозваны:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то