Спящий режим на телефоне Андроид: как отключить, в том числе полностью? Настройка спящего режима в Android или как сделать, чтобы экран не отключался Как отключить спящий режим на андроиде

Вступление

Как уже всем известно, смартфоны на базе OS Android отличаются своей нелюбовью к батареям. Или наоборот, повышенной любовью, которая заставляет иной раз задуматься, куда могло уйти столько заряда батареи, если смартфон просто лежал на столе. Было бы понятно, и даже в какой-то мере простительно, если б речь шла о пожирании заряда батареи при выполнении пользователем каких-то "тяжелых", энергоемких задач на смартфоне. Но совсем никуда не годится, когда одиноко лежащий гаджет втайне от вас занимается убиванием батареи, и когда он нужен для работы - предупреждает вас о необходимости подключить зарядное устройство. Столь повышенное внимание к батарее в режиме ожидания со стороны смартфона, как правило, вызвано софтом или системными процессами, не дающими процессору успокоиться и впасть "в спячку".

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

Внешний вид и функционал

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

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

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

Хорошо оптимизированная прошивка и программы, которые вкупе с ней не менее хорошо оптимизированы, в идеале должны сводить потребление смартфоном в спящем режиме не более 1-2 процентов батареи за 8 и более часов. Это проверялось мной неоднократно на самых разных прошивках и с разным установленным софтом, так что заявляю уверенно - смартфон на Android может за 8-9 часов не потребить ни одного процента батареи в режиме ожидания.

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

Но я несколько отвлекся, идем изучать программу дальше.

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

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

Настройки и прочие мелочи в программе

Собственно настроек, как таковых, у программы не очень много. Да что там, их почти нет. Поначалу и вовсе думал не выделять этот пункт отдельно, но потом решил, что так будет удобнее, так как кроме настроек есть еще несколько интересных моментов.

Самая первая настройка из доступных - это возможность включить отображение системных процессов, использующих в спящем режиме батарею вашего смартфона. Казалось бы, зачем оно надо? А вот и надо. Иногда, редко, но бывает, у пользователя спустя время начинаются проблемы с батареей, которая буквально тает на глазах. Причем, по его заверениям, никаких сторонних программ он не ставил или удалил все, что поставил из непроверенного софта. А батарея все равно сильно расходуется. Вот тут и пригодится эта настройка в программе. Так уж получается, что при всех своих плюсах OS Android сильно не хватает стабильности. И одним из проявлений этого является внезапный сбой какого-либо системного процесса в прошивке. Результаты могут быть самые разные, от "подлагиваний" интерфейса и тормозов при выполнении задач до уже упомянутого повышенного расхода батареи. Самостоятельно это не определить, почему и функция в программе очень полезная. А так как процесс системный и удалять для решения проблемы нечего, остается перепрошивка или сброс системы до первоначальных настроек. Процедуры не сложные, но кто же станет их делать наугад просто от подозрений. А так включили отображение в нашем детекторе системных процессов, увидели, что какой-то из них стал вдруг просто убивать батарею, и приняли решение.

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

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

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

С помощью кнопки "Менять тему" вы сможете изменить тему программы на темную или светлую, по своему вкусу.

Что еще можно найти в пункте Настройки? Да, собственно говоря, ничего больше особо интересного.

Если есть нужда в виджете для программы, вы сможете купить его из этого раздела. К нему же можно прикупить какую-то Базу решений. Не знаю, что за база такая, могу лишь предполагать, что сборник советов по энергосбережению или что-то в этом духе. Стоит ли на нее тратить свои деньги - решать вам, но я бы подумал сто раз, уж чем-чем, а бесплатными советами и решениями этого вопроса интернет и так просто пестрит. Зато понравился пункт FAQ с пояснениями о работе программы.

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

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

Конкуренты

Про конкурентов писать здесь ничего не буду. Просто потому, что не вижу смысла. Программа отлично справляется со своим назначением, бесплатна, не нагружает оперативную память и сама практически не потребляет батарею. Искать от добра добра вряд ли стоит, но если все же неймется, то можете попробовать BetterBatteryStats . Правда, она платная и для ее полноценной работы требуется рут-доступ. В целом в Google Play полно программ, аналогичных Wakelock detector, но очень мало из них действительно заслуживают внимания. И проверять все подряд нет смысла, когда имеется простая и вполне себе рабочая программа.

Оценка

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

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

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

Почему затухание автоматически происходит через 30 секунд? Такой промежуток считается наиболее оптимальным. За это время посторонний человек не сможет воспользоваться гаджетом без ведома его владельца. Следующая причина — банальная экономия заряда. Ведь, как вы наверняка знаете, экран потребляет больше всего ресурсов. Увеличение времени тайм-аута создает повышенную нагрузку на батарею.

Чтобы изменить параметры по умолчанию, откройте «Настройки» — «Экран» — «Дополнительно» (не во всех версиях ОС) — «Спящий режим». Время перехода в спящий режим можно выбрать от 15 секунд до 30 минут. Выключить тайм-аут нельзя на «чистом» Android, однако такая функция имеется на многих прошивках. В меню «Для разработчиков» можно отключить переход в спящий режим в процессе подзарядки, если выбрать «Не выключать дисплей».

Какие программы использовать

На просторах Google Play можно найти множество приложений. Одно из наиболее популярных — . Оно примечательно тем, что все необходимые функции доступны в бесплатной версии, но имеются незначительные ограничения. Учтите, что на Android старше 5 версии необходимо предоставить доступ к логам. Это можно сделать при первом заходе в приложение.

Также есть и другой способ. Откройте «Настройки» — «Приложения и уведомления» — «Дополнительно» (не на всех версиях), выберите «Спец. доступ» и «Доступ к данным». На MIUI путь отличается: «Расширенные настройки» — «Конфиденциальность» — «Управление устройством». Для смартфонов Honor и Huawei: «Настройки» — «Безопасность, конфиденциальность» — «Дополнительно» — «Доступ к статистике» — включите «Отслеживать использование».

Смартфон перестанет засыпать в процессе зарядки, если выбрать пункт «Enable selected apps» («Включить выбранные приложения») — «Keep screen on ONLY for selected apps» («Оставлять экран включенным для указанных приложений»), дисплей не будет затухать во время работы фоновых приложений. Нажмите «Select apps that will Stay Alive!» («Выбрать приложения для работы Stay Alive!») и отсортируйте приложения на свое усмотрение. Вдобавок требуется активация «Keep screen on while charging» («Оставлять экран включенным во время зарядки»). Если вы выбрали пункт «Pause Stay Alive!» («Остановить Stay Alive!»), работа программы будет приостановлена.

Есть еще одна полезная функция: «Allow the screen to dim» («Включить затемнение экрана»). Если вы уставите это флажок, подсветка будет практически полностью затухать, но экран не заблокируется, а спящий режим не активируется.

Обратите внимание на единственный недостаток бесплатной версии. При каждой перезагрузке смартфона необходимо повторно запускать приложение.

Давным-давно, когда 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!

Christopher Bird

Управление питанием в операционной системе Android - блокировка сна

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

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

Но разработчики Android предусмотрели возможность не давать устройствам с этой ОС переходить в спящий режим. В некоторых случаях может потребоваться, чтобы CPU оставался в активном состоянии даже при выключенном экране, или же может понадобиться запретить автоматическое отключение экрана при выполнении определенных задач. Для этой цели разработчики Google* включили так называемые блокировки сна в API PowerManager. Приложения, которым нужно избежать «засыпания» устройства, могут воспользоваться такой блокировкой. Пока в системе есть активная блокировка сна, устройство не сможет «заснуть», то есть перейти в режим ожидания (до снятия блокировки). При использовании блокировок сна важно понимать, что необходимо правильно снимать эти блокировки, когда они не нужны. Иначе аккумулятор устройства быстро сядет: ведь устройство не сможет вернуться в состояние пониженного расхода электроэнергии.

В этой статье описываются некоторые приложения Android, использующие блокировки сна в Android 4.0. В статье также описано приложение «Wakelocks» из набора SDPSamples для демонстрации реализации блокировок сна в коде.

Использование блокировок сна приложениями

В системе Android можно увидеть, какие службы удерживают блокировки сна и не дают системе перейти в один из режимов экономии электроэнергии. Файл file /proc/wakelocks на устройстве содержит список служб и драйверов, использующих блокировки сна. Отслеживая содержимое файла /sys/power/wake_lock (требуется доступ с правами root), можно узнать, есть ли блокировка ресурсов CPU, и какая служба удерживает блокировку wakelock2. Мне удалось зафиксировать несколько случаев использования блокировок на моем смартфоне Galaxy Nexus под управлением Android 4.0:

Таблица: Использование блокировок сна стандартными приложениями Android

Приложения YouTube и Музыка являются хорошими примерами использования блокировок сна на различных уровнях. Приложение YouTube захватывает блокировку сна, когда пользователь просматривает потоковое видео. В течение всего воспроизведения видео экран остается включенным (невзирая на установленные в системе параметры экрана). Но если во время воспроизведения пользователь нажмет кнопку питания, то устройство перейдет в режим сна: экран будет отключен, а воспроизведение звука и видео прекратится. Приложение «Музыка» использует другую блокировку сна при воспроизведении аудио. Параметры экрана не изменяются, поэтому экран устройства отключится согласно настроенным параметрам. Но даже при отключенном экране блокировка сна не даст отключиться CPU, чтобы воспроизведение музыки продолжалось, даже если пользователь нажмет кнопку питания.

Выбор типа блокировки

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

Значение флага CPU Экран Подсветка клавиатуры
PARTIAL_WAKE_LOCK Вкл Выкл Выкл
SCREEN_DIM_WAKE_LOCK Вкл Затемнен Выкл
SCREEN_BRIGHT_WAKE_LOCK Вкл Полная яркость Выкл
FULL_WAKE_LOCK Вкл Полная яркость Полная яркость

Таблица: Из API Android PowerManager.

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

Приложение, использующее блокировку сна, должно запросить особое разрешение для этого. Для этого применяется разрешение android.permission.WAKE_LOCK в файле манифеста приложения. Это означает, что даже при установке пользователем приложения с блокировками сна с помощью Google Play, пользователи получат предупреждение о том, что данное приложение содержит компоненты, которые могут не дать телефону «заснуть». Если требуется запретить затемнение экрана при определенном действии приложения, это можно сделать и способом, для которого не нужно особое разрешение. В WindowManager есть переменная FLAG_KEEP_SCREEN_ON, которую можно задать, если методу View приложения нужно оставить экран во включенном состоянии. Для управления экраном рекомендуется использовать именно такой подход, поскольку его воздействие происходит только внутри приложения. При переключении пользователя к другому приложению WindowManager снимает блокировку сна.

Удержание экрана во включенном состоянии (из набора SDPSamples)

Приложение WakeLock из набора SDPSamples демонстрирует, что приложение может удерживать экран во включенном состоянии с помощью Window Manager, без написания кода блокировки сна. Запустите приложение WakeLock и выберите элемент списка "Win Man Screen On".

Пока в строке состояния кнопки будет текст «Screen is LOCKED», экран будет включен. Если же в строке состояния кнопки будет текст «Screen is UNLOCKED», то через 5 секунд бездействия экран отключится.

В коде это осуществляется функцией screenLockUpdateState() в файле WakeLockActivity.java путем установки и снятия FLAG_KEEP_SCREEN_ON для текущего окна при каждом нажатии кнопки и изменении состояния.

Public void screenLockUpdateState() { if (mIsDisplayLocked) { ... // update display state getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } else { ... // update display state getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } }

Реализация блокировки сна

В приложение WakeLock из набора SDPSamples реализованы блокировки сна различных типов. После запуска приложения WakeLock выбираем один из 4 типов блокировок сна: Power Wake Lock Full, Power Wake Lock Bright, Power Wake Lock Dim и Power Wake Lock Partial. Эти 4 варианта соответствуют 4 флагам блокировок сна, описанным в API PowerManager. Каждый элемент демонстрирует реакцию устройства на попытку отключить экран через 5 секунд.

Отслеживая содержимое файла /sys/power/wake_lock (требуется доступ с правами root), можно увидеть, что после нажатия кнопки питания сохраняется только блокировка сна PARTIAL_WAKE_LOCK . Остальные блокировки сна не дают полностью отключить экран: он продолжает работать с тем или иным уровне яркости.

При написании кода блокировок сна нужно прежде всего запросить разрешение на их использование в манифесте AndroidManifest.xml:

После этого можно создать объект WakeLock, содержащий функции acquire() и release() для управления блокировкой сна. Хороший пример находится в файле WakeLockActivity.java:

Public void onCreate(Bundle savedInstanceState) { ... mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); ... mWakeLock = mPowerManager.newWakeLock(mWakeLockState, "UMSE PowerTest"); if (mWakeLock != null) { mWakeLock.acquire(); ... } } protected void onDestroy() { if (mWakeLock != null) { mWakeLock.release(); mWakeLock = null; } ... }

Заключение

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

Об авторе

Кристофер Берд (Christopher Bird) начал свою карьеру в подразделении Intel SSG в 2007 году и участвует в построении экосистемы устройств с процессорами Atom (телефонов и планшетов)

Справочные материалы

2 LWN – “Wakelocks and the embedded problem”: http://lwn.net/Articles/318611/

Примечания

ИНФОРМАЦИЯ В ДАННОМ ДОКУМЕНТЕ ПРИВЕДЕНА ТОЛЬКО В ОТНОШЕНИИ ПРОДУКТОВ INTEL. ДАННЫЙ ДОКУМЕНТ НЕ ПРЕДОСТАВЛЯЕТ ЯВНОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ЛИЦЕНЗИИ, ЛИШЕНИЯ ПРАВА ВОЗРАЖЕНИЯ ИЛИ ИНЫХ ПРАВ НА ИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ. КРОМЕ СЛУЧАЕВ, УКАЗАННЫХ В УСЛОВИЯХ И ПРАВИЛАХ ПРОДАЖИ ТАКИХ ПРОДУКТОВ, INTEL НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ И ОТКАЗЫВАЕТСЯ ОТ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ В ОТНОШЕНИИ ПРОДАЖИ И/ИЛИ ИСПОЛЬЗОВАНИЯ СВОИХ ПРОДУКТОВ, ВКЛЮЧАЯ ОТВЕТСТВЕННОСТЬ ИЛИ ГАРАНТИИ ОТНОСИТЕЛЬНО ИХ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, ОБЕСПЕЧЕНИЯ ПРИБЫЛИ ИЛИ НАРУШЕНИЯ КАКИХ-ЛИБО ПАТЕНТОВ, АВТОРСКИХ ПРАВ ИЛИ ИНЫХ ПРАВ НА ИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ.

КРОМЕ СЛУЧАЕВ, СОГЛАСОВАННЫХ INTEL В ПИСЬМЕННОЙ ФОРМЕ, ПРОДУКТЫ INTEL НЕ ПРЕДНАЗНАЧЕНЫ ДЛЯ ИСПОЛЬЗОВАНИЯ В СИТУАЦИЯХ, КОГДА ИХ НЕИСПРАВНОСТЬ МОЖЕТ ПРИВЕСТИ К ТРАВМАМ ИЛИ ЛЕТАЛЬНОМУ ИСХОДУ.

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

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

Номерные копии документов, на которые имеются ссылки в данном документе, а также другие материалы Intel можно заказать по телефону 1-800-548-4725 или загрузить по адресу http://www.intel.com/design/literature.htm

Программное обеспечение и нагрузки, использованные в тестах производительности, могли быть оптимизированы для достижения высокой производительности на микропроцессорах Intel. Тесты производительности, такие как SYSmark и MobileMark, проводятся на определенных компьютерных системах, компонентах, программах, операциях и функциях. Любые изменения любого из этих элементов может привести к изменению результатов. При выборе приобретаемых продуктов следует обращаться к другой информации и тестам производительности, в том числе к тестам производительности определенного продукта в сочетании с другими продуктами.

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

Intel® и эмблема Intel являются товарными знаками корпорации Intel в США и в других странах.

© Intel Corporation, 2012. Все права защищены.

*Другие наименования и торговые марки могут быть собственностью третьих лиц.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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