Когда приложение выполняет сканирование Wi-Fi в фоновом режиме, оно пробуждает процессор, что приводит к быстрому разряду батареи. Если выполняется слишком много сканирований, срок службы батареи устройства может заметно сократиться. Приложение считается работающим в фоновом режиме, если оно находится в состоянии PROCESS_STATE_BACKGROUND
или PROCESS_STATE_CACHED
.
В этом документе объясняется, как определить, когда ваше приложение выполняет слишком много сканирований Wi-Fi в фоновом режиме, а также приведены советы по диагностике и решению проблемы.
Обнаружить проблему
Вы не всегда можете знать, что ваше приложение демонстрирует чрезмерное количество сканирований Wi-Fi. Если вы уже опубликовали свое приложение, Android Vitals может сообщить вам о проблеме, чтобы вы могли ее устранить.
Android Vitals
Android Vitals может помочь повысить производительность вашего приложения, предупреждая вас через консоль Play , когда ваше приложение выполняет чрезмерное сканирование Wi-Fi в фоновом режиме. Android Vitals считает сканирование Wi-Fi чрезмерным, если приложение выполняет более 4 сканирований в час. В Play Console вы можете проверить процент сеансов без зарядки , в которых наблюдается такое поведение.
Определение сеанса батареи зависит от версии платформы.
- В Android 10 сеанс батареи — это совокупность всех отчетов о заряде батареи, полученных в течение заданного 24-часового периода. Отчет о заряде батареи относится к интервалу между двумя зарядками батареи либо от уровня ниже 20% до выше 80%, либо от любого уровня заряда до 100%.
- В Android 11 сеанс работы от батареи — это фиксированный 24-часовой период.
Информацию о том, как Google Play собирает данные Android Vitals, можно найти в документации Play Console .
Изучите результаты сканирования Wi-Fi
Такие инструменты, как Battery Historian, могут помочь вам получить более глубокое представление о поведении сканирования вашего приложения. Battery Historian обеспечивает визуализацию поведения сканирования Wi-Fi для каждого приложения, что может помочь вам получить более четкое представление о том, что происходит с вашим приложением. Дополнительную информацию о Battery Historian см. в разделе «Анализ энергопотребления с помощью Battery Historian» .
Дополнительные сведения о механизме использования Battery Historian см. в разделах Batterystats и Battery Historian. Пошаговое руководство .
Уменьшите количество сканирований
Если возможно, ваше приложение должно выполнять сканирование Wi-Fi, пока приложение работает на переднем плане. Службы переднего плана автоматически представляют уведомления; Таким образом, выполнение сканирования Wi-Fi на переднем плане информирует пользователя о том, почему и когда на его устройстве происходит сканирование Wi-Fi.
Информацию о том, как сканировать на переднем плане, см. в документации класса WifiManager
.
Если ваше приложение не может избежать сканирования Wi-Fi, пока оно работает в фоновом режиме, возможно, ему будет полезно применить стратегию Lazy First . Lazy First включает в себя три метода, которые можно использовать для сокращения сканирования Wi-Fi: сокращение , отсрочка и объединение . Информацию об этих методах см. в разделе «Оптимизация срока службы батареи» .
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Чрезмерное использование мобильной сети в фоновом режиме
Когда приложение выполняет сканирование Wi-Fi в фоновом режиме, оно пробуждает процессор, что приводит к быстрому разряду батареи. Если выполняется слишком много сканирований, срок службы батареи устройства может заметно сократиться. Приложение считается работающим в фоновом режиме, если оно находится в состоянии PROCESS_STATE_BACKGROUND
или PROCESS_STATE_CACHED
.
В этом документе объясняется, как определить, когда ваше приложение выполняет слишком много сканирований Wi-Fi в фоновом режиме, а также приведены советы по диагностике и решению проблемы.
Обнаружить проблему
Вы не всегда можете знать, что ваше приложение демонстрирует чрезмерное количество сканирований Wi-Fi. Если вы уже опубликовали свое приложение, Android Vitals может сообщить вам о проблеме, чтобы вы могли ее устранить.
Android Vitals
Android Vitals может помочь повысить производительность вашего приложения, предупреждая вас через консоль Play , когда ваше приложение выполняет чрезмерное сканирование Wi-Fi в фоновом режиме. Android Vitals считает сканирование Wi-Fi чрезмерным, если приложение выполняет более 4 сканирований в час. В Play Console вы можете проверить процент сеансов без зарядки , в которых наблюдается такое поведение.
Определение сеанса батареи зависит от версии платформы.
- В Android 10 сеанс батареи — это совокупность всех отчетов о заряде батареи, полученных в течение заданного 24-часового периода. Отчет о заряде батареи относится к интервалу между двумя зарядками батареи либо от уровня ниже 20% до выше 80%, либо от любого уровня заряда до 100%.
- В Android 11 сеанс работы от батареи — это фиксированный 24-часовой период.
Информацию о том, как Google Play собирает данные Android Vitals, можно найти в документации Play Console .
Изучите результаты сканирования Wi-Fi
Такие инструменты, как Battery Historian, могут помочь вам получить более глубокое представление о поведении сканирования вашего приложения. Battery Historian обеспечивает визуализацию поведения сканирования Wi-Fi для каждого приложения, что может помочь вам получить более четкое представление о том, что происходит с вашим приложением. Дополнительную информацию о Battery Historian см. в разделе «Анализ энергопотребления с помощью Battery Historian» .
Информацию о механизме использования Battery Historian см. в разделах Batterystats и Battery Historian. Пошаговое руководство .
Уменьшите количество сканирований
Если возможно, ваше приложение должно выполнять сканирование Wi-Fi, пока приложение работает на переднем плане. Службы переднего плана автоматически представляют уведомления; Таким образом, выполнение сканирования Wi-Fi на переднем плане информирует пользователя о том, почему и когда на его устройстве происходит сканирование Wi-Fi.
Информацию о том, как сканировать на переднем плане, см. в документации класса WifiManager
.
Если ваше приложение не может избежать сканирования Wi-Fi, пока приложение работает в фоновом режиме, возможно, ему будет полезно применить стратегию Lazy First . Lazy First включает в себя три метода, которые можно использовать для сокращения сканирования Wi-Fi: сокращение , отсрочка и объединение . Информацию об этих методах см. в разделе «Оптимизация срока службы батареи» .
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Чрезмерное использование мобильной сети в фоновом режиме