Частичные блокировки пробуждения — это механизм в API PowerManager
, который позволяет разработчикам поддерживать работу процессора после выключения дисплея устройства (будь то по истечении системного времени ожидания или из-за нажатия пользователем кнопки питания). Ваше приложение получает частичную блокировку пробуждения, вызывая acquire()
с флагом PARTIAL_WAKE_LOCK
или используя другие API, которые получают блокировки пробуждения . Частичная блокировка пробуждения становится зависшей , если она удерживается в течение длительного времени, пока приложение работает в фоновом режиме (никакая часть приложения не видна пользователю). Это состояние разряжает аккумулятор устройства, поскольку предотвращает переход устройства в состояния с низким энергопотреблением. Частичные блокировки пробуждения следует использовать только при необходимости и отменять, как только в них отпадает необходимость.
Если в вашем приложении возникла проблема с частичной блокировкой сна, вы можете воспользоваться рекомендациями на этой странице, чтобы диагностировать и устранить проблему.
Определите проблему
Вы не всегда можете знать, что частичные блокировки пробуждения вашего приложения заблокированы. Если вы уже опубликовали приложение, Android Vitals может помочь вам узнать о проблеме.
Android Vitals
Android Vitals может помочь повысить производительность вашего приложения, оповещая вас через Play Console о застрявших частичных блокировках пробуждения. Android Vitals регистрирует частичные блокировки пробуждения как застрявшие, если в фоновом режиме происходит хотя бы одна частичная блокировка пробуждения продолжительностью в час в течение 24 часов.
Отображаемое количество сеансов работы батареи является суммарным для всех пользователей приложения, измеренных с помощью измерения. Информация о том, как Google Play собирает данные Android Vitals, представлена в документации Play Console .
Как только вы узнали, что в вашем приложении зафиксированы частичные блокировки пробуждения, следующим шагом будет устранение этой проблемы.
Исправить проблему
Поскольку запреты на активацию могут разрядить аккумулятор устройства, не используйте их, если есть альтернатива. Документация «Выберите правильный API для поддержания устройства в активном состоянии» поможет вам найти оптимальное решение для вашего приложения.
Если вам всё же необходимо использовать блокировку сна, следуйте рекомендациям , чтобы она не снижала эффективность работы устройства. В частности, убедитесь, что каждое приобретаемое вами устройство разблокировано, и снимите блокировку как можно быстрее.
После исправления проблемы в коде вы можете проверить свои исправления с помощью локальных инструментов отладки wake-lock .
Смотрите также
{% дословно %}Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Замороженные кадры
- Выполнение бенчмарков в непрерывной интеграции
- Создавайте и измеряйте базовые профили без Macrobenchmark