Не давать спать процессору андроид

Обновлено: 07.07.2024

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

Спящий режим на Андроиде: что это?

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

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

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

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

Настройки смартфона

«Чистая» прошивка

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

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

Samsung

Новые планшеты и смартфоны данного южнокорейского бренда работают на оболочке One UI, для пользователей которой актуален следующий порядок действий:

Как видно, здесь тоже нет возможности отключить спящий режим на Андроиде посредством панели управления телефоном (или, как видно по скриншотам, планшетом).

Xiaomi

Девайсы с прошивкой MIUI – одни из немногих устройств, для которых доступно полное отключение спящего режима через меню настроек. Достаточно следовать этой инструкции:

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

Huawei и Honor

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

В случае с Magic UI порядок действий является точно таким же.

Сторонние приложения

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

Stay Alive!

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

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

Stay Awake

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

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

Screen ON

Это приложение, как и вышеперечисленный софт, поможет в отключении спящего режима.

    . Откройте программу после её скачивания;
  1. Нажмите «ОК», чтобы закрыть предупреждение о предназначении софта для старой версии «Андроида»;
  2. Скройте окно с информацией о недавно внесённых изменениях;
  3. Выберите вариант действий по истечении тайм-аута, установленного в параметрах операционной системы. Поддерживаются следующие решения: «Сохранить яркость», «Погасить экран» (Android делает это автоматически за несколько секунд до выключения дисплея), «Увеличить яркость до максимума», «Снизить яркость до минимума», «Задать свои параметры яркости». Отметьте подходящее действие в списке самостоятельно или, если не знаете, что лучше, оставьте значение, стоявшее по умолчанию, – первое. Затем тапните кнопку Start;
  4. Проведите свайп вправо для перехода к расширенным настройкам. Выставите дополнительные параметры, если это потребуется. Например, полезно будет активировать функцию «Auto Start on boot». К сожалению, она работает только в платной версии программы, как и все представленные в этом разделе возможности.

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

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

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

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

Как мы уже упомянули, не стоит выключать режим сна на Андроиде, если на это нет никаких причин. Кроме того, даже когда вы сталкиваетесь с частым отключением экрана, более подходящим решением выступает выставление большого временного ограничения, лишь по истечении которого активируется эта особенность. Собственно, на данный момент и намекают разработчики Android и некоторых прошивок, включая используемый в «Самсунгах» One UI.

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

Проблемы и способы их решения

Экран все равно отключается

Проблема актуальна только при пользовании сторонним софтом. Прежде всего, проверьте, возможна ли деактивация спящего режима через параметры устройства. Если это так, следует выставить этот параметр в настройках гаджета. В противном случае найдите другое приложение, поскольку время от времени обновления, выпускаемые «Гуглом», «ломают» старую функциональность, и не факт, что давно выпущенный софт подойдёт для вашего устройства (впрочем, в случае с перечисленными выше приложениями никаких проблем на относительно новом планшете Galaxy Tab S6 не возникло).

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

Яркость дисплея изменяется

Скорее всего, в настройках приложения вы разрешили плавное затухание экрана, которое делается «Андроидом» за несколько секунд до перехода в режим сна. Уберите эту настройку, которая называется «Allow dim» или похожим образом (зависит от используемого ПО).

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


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

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

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

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

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

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

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

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

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

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

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

Foreground service

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

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

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

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

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

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

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

А затем достаточно вызвать интент DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN, который приведет к появлению на экране окна для активации прав администратора:

Запрос на активацию прав администратора и окно управления администраторами
Запрос на активацию прав администратора и окно управления администраторами
Запрос на активацию прав администратора и окно управления администраторами
Запрос на активацию прав администратора и окно управления администраторами
Запрос на активацию прав администратора и окно управления администраторами

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

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

Плюс добавить такую строку в Manifest.xml:

Если юзер согласится добавить приложение в исключение, нажав «Да», наша служба сможет работать с Сетью и устанавливать вейклоки (partial wakelock), даже когда смартфон находится в режиме Doze.

Проблема этого подхода только в том, что Google не пропустит такое приложение в Play Store. Точнее, она должна его пропустить, если подобная функциональность действительно необходима приложению (об этом ясно сказано в документации). Но по факту робот Гугла сразу отшибает любые приложения с пермишеном REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.

Обойти эту проблему можно, если вместо того, чтобы напрямую просить юзера добавить приложение в список исключений, просто кинуть его на экран управления исключениями Doze (Настройка → Батарея → Меню → Экономия заряда батареи), предварительно предупредив, что юзер должен сам найти приложение в списке и выключить для него режим энергосбережения. Сделать это можно с помощью такого метода:

Окно исключений режима Doze
Окно исключений режима Doze
Окно исключений режима Doze
Окно исключений режима Doze
Окно исключений режима Doze

Сценарий 3. Задержка в ответе недопустима, в режиме Doze сервис должен работать

К сожалению, даже если ты добавишь приложение в исключения Doze, ты все равно не избежишь задержки в ответе. Одна минута может быть некритична для большинства приложений, но, если речь идет о чем-то вроде мессенджера, никакая задержка не допустима.

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

  1. Push-уведомления должны быть реализованы средствами Firebase Cloud Messaging (FCM, ранее Google Cloud Messaging) или с помощью библиотек и сервисов на основе этой технологии.
  2. Уведомления должны быть высокоприоритетными, иначе они не смогут вытащить твое приложение из Doze.
  3. Твое приложение должно находиться в списке исключений Doze, иначе, проснувшись после получения push, оно не сможет выйти в Сеть.
  4. Самый простой способ реализации push-уведомления — это сервис OneSignal. Он построен на базе FCM, очень легко интегрируется в приложение и предоставляет безлимитное количество пушей даже в бесплатной версии.

Вместо выводов

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

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Привет всем. =) Как и обещал, выкладываю вторую часть материала статьи об энергосбережении на Android. На этот раз речь пойдет о возможностях c root-доступом.

О том, что такое Root, как его получить, возможные риски, полезный софт - в этой замечательной статье на 4PDA

Итак, если вы рутировали свой гаджет, то у вас открываются дополнительные возможности по экономии электроэнергии:

1. Удаление или отключение ("заморозка") любых приложений;

2. Управление частотой процессора;

3. Исключение программ из автозагрузки;

4. Поиск программ, не дающих "засыпать" устройству и/или чрезмерно нагружающих процессор;

5. Модули для Xposed для экономии электроэнергии.

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

С первого пункта и начнем. Как я уже писал в первой части, дополнительной экономии электроэнергии можно достичь с удалением/отключением программ. С наличием Root-доступа вы можете удалить/отключить любую программу. НО БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ: удаление и/или отключение того-что-трогать-нельзя, может привести к негативным последствиям, вплоть до "окирпичивания". Приложения, от которых можно безболезненно избавиться, вы можете уточнить на тематических форумах. Либо, как вариант, воспользоваться программами Power Clean или менеджер приложений (ROOT) (ссылки на упомянутые приложения будут в конце поста). В первой программе выбираем Менеджер приложений, прокручиваем список до "Предуст. прил-я", где приложения делятся на те, что можно безопасно отключить и на те, которые трогать нельзя. Справедливости, ради, отключение Play Маркета, Hangouts, стандартного почтовика, которые приложение занесло в список "неприкасаемых", не нанесло моему телефону никакого вреда. Во втором при запуске формируется список системных приложений, который делится на три типа: "Можно удалить", "Лучше оставить" и "Удалять небезопасно".

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Если написанное выше не испугало, начнем с менее радикального способа. Пожалуй, самой известной программой для отключения ("заморозки") является Titanium Backup. Точнее, это лишь одна из его множества полезных функций. Для заморозки приложения запускаем Тitanium, жмем вкладку Резервные копии, где находим нужное приложение, тапаем по нему и выбираем "Заморозка!". Но я, например, отключаю приложения через Lacky Patcher, еще одну утилиту, но с "уклоном" в сторону патчинга и взлома приложений. Нужно лишь в настройках в разделе "Фильтр" поставить галочки рядом со всеми пунктами, и тогда в списке будут отображаться все приложения. Ну а дальше все просто: тап по приложению > Инструменты > Отключить приложение (заморозить). У этого же автора есть Lucky App Manager - Lucky Patcher без "незаконных" функций.

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Перечислю еще несколько программ с функцией отключения приложений: Link2SD, SD Maid, My Android Tools, System Cleanup.

Перейдем к удалению системных приложений. Тут скажу очень кратко: Все, что умеет замораживать приложения, почти наверняка умеет и удалять системные. А также многочисленные файлменеджеры с менеджерами приложений, отдельные менеджеры приложений, всевозможные "комбаины". Главное - чтобы они имели доступ к root-привилегиям.

Управление частотой процессора

ВНИМАНИЕ! Ручное изменение частоты CPU может привести к зависанию, нестабильной работе и теоретически даже к повреждению устройства!

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

Все современные устройства могут динамически управлять частотой своего процессора в зависимости от его загрузки, тем самым регулируя его производительность и энергопотребление. Но это не всегда может происходить правильно и наиболее оптимально, и у аппарата будет не экономичный расход энергии. При этом, при отсутствии активных приложений, выключенном экране, частота процессора снижается до минимального значения, прописанного в ядре прошивки, как правило это 15-30% от максимальной частоты. В правильно оптимизированном устройстве, со средней повседневной нагрузкой, большую часть времени процессор будет работать именно на минимальной частоте. Оценить оптимизацию энергопотребления процессора устройства можно посмотрев статистику работы процессора на той или иной частоте. Для этого открываем приложение Android System Info, выбираем вкладку Информация о системе и пункт Процессор. Если там вы видите, что большую часть времени процессор работает на максимальной частоте, значит, с оптимизацией есть проблема. При этом, в первую очередь нужно посмотреть графики загрузки процессора в программах мониторинга, например, SystemPanel. Если процессор не грузит какое-либо приложение, за счёт чего его частота поднимается, значит, неправильно работает штатный режим управления частотой.

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

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

SetCPU и CPU Control. Вторая дополнительно умеет понижать напряжение процессора.

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Исключение программ из автозагрузки

Многие сталкивались с ситуацией, когда только что купленный смартфон радует своего владельца необыкновенной скоростью и отзывчивостью, но стоит установить в него весь комплект необходимых программ, как от былой резвости не остаётся и следа. Это происходит из-за того, что очень многие программы и сервисы добавляют себя в автозагрузку, стартуют вместе с операционной системой, а затем так и работают в фоновом режиме, отбирая системные ресурсы и съедая заряд вашего аккумулятора. Чтобы убрать программы из автозагрузки, существует несколько утилит, самая известная и популярная из которых - Autostarts. Посему расскажу подробнее именно о ней. При запуске программы на дисплее появляются вкладки, при нажатии на которые видно, какие приложения и службы запускаются при том или ином действии. Чтобы удалить какое-либо приложение, жмем на него и в открывшемся окне выбираем Запретить. Помните: даже после удаления Autostarts, все изменения внесённые в приложения сохранятся на постоянной основе. Если вы хотите исследовать правила запуска для каждой конкретной программы, то необходимо переключиться в настройках в режим

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Как видите, в целом довольно просто. Подробнее тут и FAQ из самой программы.

Существуют и аналоги Autostarts:

Startup Manager, Autorun Manager, AutoRun Manager (да, разработчики иногда не заморачиваются с названиями) и другие программы, которые вы, при желании, можете найти в сети и Play Маркете.

Поиск "незасыпающих" и грузящих процессор программ

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

Далее описаны несколько способов вычисления виновника незасыпания:

Перед применением какого-либо способа, попробуйте сначала просто перезагрузить телефон (особенно при сильной "невидимой" активность или показателе Running

100%), этого порой бывает достаточно.

Устанавливаем программу Wakelock Detector и запускаем её перед сном. Утром смотрим как "спал" телефон, какие приложения его "будили". Если попадается в лидерах незнакомый процесс, гуглим за что он отвечает и делаем выводы.

Устанавливаем BetterBatteryStats, так же запускаем перед сном, утром смотрим результаты. Подробное описание здесь.

Устанавливаем SystemPanel, переходим "Меню->Настройки", ставим галку "Включить Мониторинг", остальные галки по желанию. Оставляем аппарат на некоторое время в покое, желательно на всю ночь. По прошествии времени переходим Меню->Мониторинг. Нажимаем кнопку "История" и видим графики. Можно задать интервал вывода информации (если мониторинг работал всю ночь, удобнее выставить "8 часов"). Находясь в Истории, нажимаем на кнопку в верхнем левом углу "график", выбираем там Топ-приложения и получаем список приложений и процессов. Нажимаем на наиболее активные процессы и видим информацию о процессе, внизу видим историю потребления. Нажимаем кнопку "Сравнить", и снизу добавляются общие графики. Поочередно просматривая графики всех процессов, в итоге находим виновников незасыпания.

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Энергосбережение Android. Часть 2. Энергосбережение, Android, Совет, Длиннопост

Модули Xposed для экономии энергии

Если очень кратко, то Xposed - это программа для изменения настроек приложений и прошивок без необходимости их декомпиляции, компиляции и подписи. Нужный результат достигается с помощью т.н. модулей. И, как вы уже догадались, некоторые модули помогут сэкономить заряд аккумулятора. Рассмотрим подробнее несколько: Power Nap, Amplify Battery Extender - Root, Greenify, Boot Manager,

Power Nap - это аналог технологии Stamina от Sony, но теперь доступный для Android-устройств версии 4.1 и выше. Модуль останавливает фоновые процессы, когда отключен экран, но вы можете добавить в список исключений те приложения, от которых нужны уведомления: соцсети, мессенджеры, звонки и SMS и т.п.

Программа Amplify прибивает основные системные процессы, пожирающие заряд батареи: NlpWakelock, NlpCollectorWakeLock, ALARM_WAKEUP_LOCATOR и ALARM_WAKE_ACTIVITY_DETECTION. Одно это позволяет ощутимо увеличить время жизни гаджета между зарядами, а за пожертвование доступны дополнительные функции.

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

Boot Manager делает то же, что и Autostarts: убирает программы и службы из автозагрузки.

Greenify - модуль для гибернации (усыпления) программ.

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

Список программ в комментариях (даю ссылки на 4PDA, т.к некоторые программы там русифицированы и есть полные версии. Но для скачивания нужна регистрация. Там же ссылки на Play Маркет, если данная программа там есть).

У меня есть приложение, в котором я отправляю сетевые данные через WiFI. Все нормально, пока я не выключу дисплей или устройство не перейдет в "спящий режим". Однако я уже блокирую Wi-Fi, кажется , что скорость процессора снижается в спящем режиме, из-за чего моя потоковая передача не работает должным образом (т. Е. Пакеты не передаются так быстро, как я хотелось бы как они это делают когда девайс не спит).

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

Есть ли какой-нибудь способ «предотвратить переход процессора в« спящий режим »при выключенном экране»? Если да, то как? Если нет, какие-либо советы о том, как поддерживать постоянную скорость моего потока Wi-Fi, независимо от того, находится ли устройство в спящем режиме или нет?

2 ответа

Итак, после гораздо большего количества исследований и экспериментов кажется, что реальная проблема заключается в том, что, по крайней мере, на некоторых телефонах их Wi-Fi переходит в режим «частичного сна» ДАЖЕ ЕСЛИ вы сняли блокировку Wi-Fi. Похоже, что это то, для чего был изобретен флаг WIFI_MODE_FULL_HIGH_PERF при взятии блокировки WiFi . к сожалению, этот флаг доступен только на некоторых устройствах / версиях Android (я понятия не имею, какие, но он был недоступен мне). Таким образом, это исправление не для всех устройств.

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

Я надеюсь, что это поможет людям, у которых наблюдается сбой Wi-Fi, когда телефон переходит в спящий режим / экран выключен (и телефон отключен / отключен [например, вы не увидите этого эффекта при подключении к adb; только когда телефон работает и к нему ничего не подключено]).

Возьмите PARTIAL_WAKE_LOCK из PowerManager. Вам также потребуется добавить в манифест разрешение WAKE_LOCK.

Читайте также: