Блокировка сна для Android. Спящий режим Android: для чего он нужен, как его убрать Почему телефон не отключается в спящий режим


Давным-давно, когда 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. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

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

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

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

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

Как загрузить и установить Stay Awake – Keep On Screen:

  1. Запустите приложение и выберите раздел «Загрузка».
  • Воспользуйтесь поиском, чтобы найти модуль Stay Awake – Keep On Screen.

  • На странице модуля перейдите к вкладке «Версии» и загрузите его последнюю версию.
  • Установите модуль и перезагрузите устройство.
  • Снова запустите Xposed Installer и зайдите в раздел «Модули». Убедитесь, что вы активировали модуль, поставив галочку напротив Stay Awake – Keep On Screen.

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



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

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

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





    Stay Alive! имеет несколько режимов работы:

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

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

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


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

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

    Спящий режим Андроид – что это такое и как отключить – вопрос, требующий срочного решения в ситуации, когда пользователю нужна постоянная работа устройства. Если нужно отключить режим сна или увеличить время затухания, стоит изучить рекомендации данной статьи. Здесь сказано, каким способом провести увеличение временного периода, почему это нужно и какие преимущества можно приобрести от проведения данной операции.

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

    Для чего нужна эта функция?

    Стоит рассмотреть, для чего требуется осуществлять подобную операцию. Это специальная опция, которая сэкономит заряд батареи. После некоторого времени дисплей гаснет, устройство переходит в спящий режим.

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

    Как отключить спящий режим на телефоне?

    Отличным решением считается отключение затухания экрана через специальные приложения. Без них можно установить тайм-аут лишь в границах пары минут.

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

    Как убрать спящий режим на телефоне?

    Чтобы полностью убрать режим, потребуется использовать специальное ПО Stay Alive. Интерфейс утилиты понятен, после скачивания пользователь поймет, что нужно сделать.

    Если нет желания или возможности использовать сторонние приложения, разрешается действовать через настройки. Схему действий можно изучить на примерах гаджетов Honor и Huawei. Выполнить необходимо такие манипуляции:


    Здесь устанавливается время работы при бездействии устройства.
    При наличии в распоряжении гаджета марки MIUI, человек для смены режима должен произвести следующие действия:

    • Переход во вкладку с настройками;
    • Нажимается Конфиденциальность;
    • Следует зайти в Управление.

    На многих гаджетах для достижения цели достаточно запустить функцию Отслеживать использование. При желании можно задействовать опцию Allow the screen to dim, которая переводится, как затемнение дисплея. Если установить соответствующий флажок, свет будет немного темнеть, но блокировки не произойдет.

    Почему нельзя поменять спящий режим на телефоне?

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

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

    Как настроить спящий режим?

    Полезная опция начинает раздражать в разных ситуациях, в которых владелец устройства пользуется им. Среди самых главных можно отметить:

    1. Просмотр роликов и фото в интернете.
    2. Игры, где перерыв будет занимать время.
    3. Изучение карт.

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


    Стоит отметить, что на определенных смартфонах тайм-аут отключить нет возможности. Выдержку можно только продлить до 30 минут. Подобный спящий режим присутствует в стандартных прошивках на устройствах honor. Если подобной опции нет, часто можно найти пункт Не выключать дисплей. Если ввести его в активное положение, телефон не отключится в период подзарядки.

    Можно использовать специальное приложение. Речь идет об универсальной утилите Hold Screen On Demo. Она использует фронтальную камеру, чтобы экран по прошествии определенного времени не выключался. Камера следит за взглядом пользователя. Как только человек перестает смотреть на телефон, утилита сможет понять это, отключит смартфон, и он будет не активен.

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

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

    Подводя итоги

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

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

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

    Многие из нас в подобных случаях давно и успешно пользуются приложением Greenify , которое умеет в автоматическом режиме определять, какие из имеющихся на вашем смартфоне или планшете приложения виноваты в повышенном разряде батареи, а также – замедлении его работы, после чего вы можете отключить их. Недавно у Greenify появился новый, достаточно серьезный конкурент – приложение от разработчика Francisco Franco, названное им Servicely.

    Для работы этого приложения вам понадобятся root права на вашем устройстве: Servicely умеет останавливать не только установленные вами приложения, но и системные сервисы, которые являются причиной повышенной нагрузки на процессор смартфона или планшета. По словам некоторых первых пользователей Servicely справляется с этой задачей иногда даже более эффективно, чем его именитый конкурент Greenify .
    Скачать приложение Servicely на Андроид вы можете по ссылке ниже.

    Разработчик: Francisco Franco
    Платформа: Android 5.0 и выше
    Язык интерфейса: Английский
    Состояние: Pro (Полная версия)
    Root: Нужен

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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