Uso excessivo da rede móvel em segundo plano

Quando um app se conecta à rede móvel em segundo plano, ele ativa a CPU e liga o rádio. Fazer isso repetidamente pode esgotar a bateria de um dispositivo. Um app é considerado em execução em segundo plano se está no estado PROCESS_STATE_BACKGROUND ou PROCESS_STATE_CACHED.

Esta página explica como determinar o motivo pelo qual seu app usa excessivamente a rede móvel durante a execução em segundo plano e o que fazer a respeito disso.

Detectar o problema

Nem sempre você sabe se o app está fazendo uso excessivo da rede durante a execução em segundo plano. Se já tiver publicado o app, o Android vitals pode informar o problema para você corrigir.

Android vitals

O Android vitals pode ajudar a melhorar o desempenho do seu app alertando você pelo Play Console quando o app estiver usando a rede móvel excessivamente em segundo plano.

Esse recurso considera excessivo o uso de rede em segundo plano quando um app envia e recebe um total combinado de 50 MB por dia em execução em segundo plano. 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 o comportamento de uso da rede móvel

Ferramentas como o Battery Historian podem ajudar você a ter mais informações sobre como seu app faz uso da rede móvel. O Battery Historian oferece uma visualização do uso de rádio móvel por app, o que pode ajudar você a ter uma visão mais clara do que está acontecendo com o app. Para mais informações, consulte Analisar o consumo de energia com o Battery Historian. Ao investigar o comportamento de uso da rede móvel do seu app, observe especificamente a linha Mobile network use.

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

Reduzir o uso da rede móvel

É possível mover o uso da rede móvel do seu app para o primeiro plano, alertar o usuário sobre o andamento de um download e fornecer a ele controles para pausar ou interromper o download. Para fazer isso, chame DownloadManager e defina setNotificationVisibility(int) conforme adequado.