Чрезмерные частичные блокировки пробуждения

Частичные блокировки пробуждения — это механизм API PowerManager , который позволяет разработчикам поддерживать работу процессора после выключения дисплея устройства (будь то по истечении системного времени ожидания или из-за нажатия пользователем кнопки питания). Ваше приложение получает частичную блокировку пробуждения, вызывая acquire() с флагом PARTIAL_WAKE_LOCK или используя другие API, которые получают блокировки пробуждения . Чрезмерное использование частичных блокировок пробуждения разряжает аккумулятор устройства, поскольку предотвращает переход устройства в состояния пониженного энергопотребления. Частичные блокировки пробуждения следует использовать только при необходимости и снимать, как только в них отпадает необходимость.

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

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

Оставьте отзыв

Определите проблему

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

Android Vitals

Android Vitals может помочь повысить производительность вашего приложения, оповещая вас через Play Console, если приложение чрезмерно использует частичные блокировки сна.

Android Vitals считает использование частичной блокировки пробуждения чрезмерным, если все частичные блокировки пробуждения , суммированные, длятся 2 или более часов в течение 24 часов. Android Vitals отслеживает длительность блокировки пробуждения только в том случае, если она удерживается, когда приложение работает в фоновом режиме или запускает службу переднего плана. В настоящее время Android Vitals исключает блокировки пробуждения, созданные пользовательскими API аудио , местоположения и JobScheduler , из расчета блокировки пробуждения.

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

Если чрезмерные частичные блокировки пробуждения происходят более чем в 5% сеансов приложения на всех устройствах в течение 28-дневного периода, это может повлиять на видимость вашего приложения в Google Play после того, как метрика выйдет из стадии бета-тестирования.

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

Исправить проблему

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

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

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

После исправления проблемы в коде вы можете проверить свои исправления с помощью локальных инструментов отладки wake-lock .

Смотрите также

{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %}