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