Eccessiva ricerca di reti Wi-Fi in background

Quando un'app esegue ricerche di reti Wi-Fi in background, riattiva la CPU, causando un tasso di consumo della batteria. Quando vengono eseguite troppe scansioni, la durata della batteria del dispositivo potrebbe essere notevolmente ridotta. Un'app è considerata in esecuzione in background se è in stato PROCESS_STATE_BACKGROUND o PROCESS_STATE_CACHED.

Questo documento spiega come rilevare quando la tua app esegue troppe scansioni di reti Wi-Fi in background e fornisce suggerimenti su come diagnosticare e risolvere il problema.

Rileva il problema

Potresti non sapere sempre che la tua app sta rilevando un numero eccessivo di ricerche di reti Wi-Fi. Se hai già pubblicato la tua app, Android vitals può informarti del problema in modo da poterlo risolvere.

Android vitals

Android vitals può aiutare a migliorare le prestazioni della tua app avvisandoti tramite Play Console quando la tua app esegue un'eccessiva ricerca di reti Wi-Fi in background. Android vitals considera la ricerca di reti Wi-Fi eccessiva quando un'app esegue più di 4 ricerche all'ora. In Play Console puoi controllare la percentuale di sessioni di batteria che mostrano questo comportamento.

La definizione di sessione di batteria dipende dalla versione della piattaforma.

  • In Android 10, una sessione di batteria è l'aggregazione di tutti i report sulla batteria ricevuti entro un determinato periodo di 24 ore. Un report sulla batteria fa riferimento all'intervallo tra due ricariche da meno del 20% a oltre l'80% o da qualsiasi livello di carica al 100%.
  • In Android 11, una sessione di batteria è un periodo fisso di 24 ore.

Per informazioni sulla modalità di raccolta dei dati Android vitals da parte di Google Play, consulta la documentazione di Play Console.

Esaminare le ricerche di reti Wi-Fi

Strumenti come Storico della batteria possono aiutarti a ottenere informazioni più dettagliate sul comportamento di analisi della tua app. Battery Historian fornisce una visualizzazione del comportamento di scansione delle reti Wi-Fi in base alle singole app, il che può aiutarti a ottenere un quadro più chiaro di ciò che sta accadendo con la tua app. Per ulteriori informazioni su "Hstorian batteria", consulta Analisi del consumo di energia con la cronologia delle batterie.

Per informazioni sui meccanismi di utilizzo di Battery Historian, consulta Batterystats and Battery Historian Walkthrough.

Riduci le scansioni

Se possibile, l'app dovrebbe eseguire ricerche di reti Wi-Fi mentre è in esecuzione in primo piano. I servizi in primo piano presentano automaticamente le notifiche; l'esecuzione di ricerche di reti Wi-Fi in primo piano informa l'utente del perché e del momento in cui le ricerche di reti Wi-Fi vengono eseguite sul dispositivo.

Per informazioni su come eseguire la scansione in primo piano, consulta la documentazione per la classe WifiManager.

Se la tua app non può evitare di eseguire ricerche di reti Wi-Fi mentre è in esecuzione in background, potrebbe trarre vantaggio dall'applicazione di una strategia Lazy First. Lazy First comprende tre tecniche che puoi utilizzare per ridurre le ricerche di reti Wi-Fi: ridurre, differire e coalesce. Per informazioni su queste tecniche, consulta la pagina Ottimizzazione per la durata della batteria.