Busca excessiva por Wi-Fi em segundo plano

Quando um app faz buscas por Wi-Fi em segundo plano, ele ativa a CPU, o que gera um consumo elevado da bateria. Quando ocorrem muitas buscas, a duração da bateria do dispositivo pode ser reduzida drasticamente. Um app é considerado em execução em segundo plano se está no estado PROCESS_STATE_BACKGROUND ou PROCESS_STATE_CACHED.

Este documento explica como detectar quando seu app está fazendo muitas buscas por Wi-Fi em segundo plano e oferece dicas sobre como diagnosticar e resolver o problema.

Detectar o problema

Nem sempre você sabe que o app faz um número excessivo de buscas por Wi-Fi. Se já tiver publicado o app, o Android vitals pode informar o problema para que você possa corrigir.

Android vitals

O Android vitals pode ajudar a melhorar o desempenho do seu app alertando você, pelo Play Console, quando o app estiver fazendo muitas buscas por Wi-Fi em segundo plano. O Android vitals considera as buscas por Wi-Fi excessivas quando um app faz mais de quatro buscas por hora. No Play Console, é possível conferir a porcentagem de durações da bateria em que ocorre esse comportamento.

A definição de duração da bateria depende da versão da plataforma.

  • No Android 10, a duração da bateria é a agregação de todos os relatórios de bateria recebidos em um determinado período de 24 horas. Um relatório de bateria se refere ao intervalo entre duas cargas, seja de menos de 20% a mais de 80% ou de qualquer nível de carga até 100%.
  • No Android 11, a duração da bateria é de um período fixo de 24 horas.

Para informações sobre como o Google Play coleta dados do Android vitals, consulte a documentação do Play Console.

Investigar as buscas por Wi-Fi

Ferramentas como o Battery Historian podem ajudar você a ter mais informações sobre o comportamento de busca do seu app. O Battery Historian fornece uma visualização do comportamento de busca por Wi-Fi de cada app, o que pode ajudar a saber mais sobre o que está acontecendo com seu app. Para mais informações, consulte Como analisar o uso de energia com o Battery Historian.

Para mais informações sobre os mecanismos de uso do Battery Historian, consulte o Tutorial sobre o Batterystats e o Battery Historian.

Reduzir as buscas

Se possível, o app deve fazer buscas por Wi-Fi enquanto estiver sendo executado em primeiro plano. Serviços em primeiro plano apresentam notificações automaticamente. As buscas por Wi-Fi em primeiro plano informam o usuário do motivo e do momento em que elas ocorrem no dispositivo.

Para ter informações sobre como buscar Wi-Fi em primeiro plano, consulte a documentação da classe WifiManager.

Se o app não puder evitar a realização de buscas por Wi-Fi enquanto estiver sendo executado em segundo plano, ele poderá aplicar a estratégia Lazy First. A Lazy First engloba três técnicas que podem ser usadas para diminuir as buscas por Wi-Fi: reduzir, adiar e unir. Para mais informações sobre essas técnicas, consulte Como otimizar a duração da bateria.