Вы когда-нибудь ложились спать с достаточно заряженным аккумулятором Android, но утром просыпались с полностью разряженным телефоном? Если ответ «да», на вас могут повлиять приложения wakelock, установленные на вашем смартфоне. Конечно, это также может быть связано с плохим состоянием батареи. Но сценарии системной блокировки из-за неправильного поведения приложений, которые используют ресурсы вашего телефона и разряжают аккумулятор, могут произойти даже на исправных устройствах.
Чтобы лучше понять проблему, мы рассмотрим, что такое wakelocks, когда речь идет об Android, и как мы можем обнаружить и исправить проблему для увеличения времени автономной работы.
Что такое вейклоки?
Когда вы нажимаете кнопку питания на телефоне, чтобы заблокировать экран, вы предполагаете, что телефон перейдет в спящий режим. Но это не всегда так. Есть приложения, которые работают в фоновом режиме, используя ресурсы устройства и не позволяя телефону переходить в режим глубокого сна. Из-за этого процессор телефона постоянно работает, что расходует заряд батареи, даже когда вы им не пользуетесь. Большинство этих пробуждения вызваны тем, что приложения хотят синхронизировать данные в фоновом режиме или использовать службы определения местоположения.

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

Проблема начинается, когда некоторые приложения используют это разрешение в течение часа и заставляют процессор вашего телефона работать постоянно. Возьмем, к примеру, сервисы Google Play. Если у вас включено определение местоположения, служба будет поддерживать работу процессора вашего телефона почти всю ночь и резко сократить срок службы батареи.
Итак, теперь, когда мы знаем, что такое wakelocks, давайте посмотрим, как мы можем обнаружить приложения, которые их вызывают.
Примечание: Поскольку для получения этих данных нам потребуются повышенные разрешения, необходим root-доступ. Боюсь, без root-прав на вашем устройстве вы мало что можете сделать с проблемой wakelock. Но получить root права на устройство в наши дни несложно, поэтому не забудьте добавить эту страницу в закладки и вернуться к ней, как только вы разберетесь, как получить root права на свой Android (и рутировать его тоже).
Обнаружение приложений, вызывающих вейклоки
Обнаружение вейклоков довольно просто, если у вас есть рутированный телефон. Полностью зарядите аккумулятор до 100% и установите на устройство приложение под названием Wakelock Detector. Сделав это, перезагрузите телефон один раз и запустите приложение. Wakelock Detector запросит root-доступ и будет работать в фоновом режиме, собирая данные.


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


Решение проблемы
Итак, теперь, когда мы знаем приложения, которые вызывают эти пробуждения, одним из самых простых вариантов будет удалить приложение и найти лучшую альтернативу в Play Store. Но есть системные приложения, такие как Google Play Services, которые вы не можете удалить. Эти приложения необходимы для работы телефона.


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

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