Чрезмерное сканирование Wi-Fi в фоновом режиме,Чрезмерное сканирование Wi-Fi в фоновом режиме

Когда приложение выполняет сканирование 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: сокращение , отсрочка и объединение . Информацию об этих методах см. в разделе «Оптимизация срока службы батареи» .

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

Когда приложение выполняет сканирование 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: сокращение , отсрочка и объединение . Информацию об этих методах см. в разделе «Оптимизация срока службы батареи» .

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