Wakelock parziali eccessivi

I wake lock parziali sono un meccanismo dell'API PowerManager che consente agli sviluppatori di mantenere in esecuzione la CPU dopo lo spegnimento del display di un dispositivo (a causa del timeout del sistema o della pressione del tasto di accensione da parte dell'utente). La tua app acquisisce un wake lock parziale chiamando acquire() con il flag PARTIAL_WAKE_LOCK o utilizzando altre API che acquisiscono wake lock. L'uso eccessivo di wake lock parziali scarica la batteria del dispositivo perché impedisce al dispositivo di entrare in stati di basso consumo energetico. I wake lock parziali devono essere utilizzati solo quando necessario e rilasciati non appena non sono più necessari.

Se la tua app utilizza wakelock parziali in modo eccessivo, puoi utilizzare le indicazioni riportate in questa pagina per diagnosticare e risolvere il problema.

Il tuo feedback è fondamentale per migliorare la nostra documentazione. Inviaci il tuo feedback utilizzando il seguente link:

Invia un feedback

Rilevare il problema

Android vitals può aiutarti a scoprire quando l'utilizzo dei wakelock parziali della tua app è eccessivo.

Android vitals

Android vitals può aiutarti a migliorare le prestazioni della tua app inviandoti un avviso tramite Play Console quando l'utilizzo di wake lock parziali da parte della tua app è eccessivo.

Android vitals segnala l'utilizzo di wakelock parziali come eccessivo quando tutti i wakelock parziali, sommati tra loro, durano 2 o più ore in un periodo di 24 ore. Android vitals monitora la durata del wakelock solo se il wakelock viene mantenuto quando l'app è in background o esegue un servizio in primo piano. Al momento, Android vitals esenta dal calcolo dei wake lock i wake lock creati dalle API avviate dall'utente audio, posizione e JobScheduler.

La dashboard dei wakelock parziali eccessivi di Android vitals fornisce suddivisioni dei nomi dei wakelock non esenti associati alla tua app, mostrando le sessioni e le durate interessate.

Se si verificano wakelock parziali eccessivi in più del 5% delle sessioni dell'app su tutti i dispositivi in un periodo di 28 giorni, ciò può influire sulla visibilità dell'app su Google Play una volta che la metrica non sarà più in versione beta.

Una volta che ti rendi conto che la tua app ha wakelock parziali eccessivi, il passaggio successivo è risolvere il problema.

Risolvi il problema

Poiché i wake lock possono scaricare la batteria del dispositivo, non dovresti utilizzarli se esiste un'alternativa. La documentazione Scegliere l'API giusta per mantenere attivo il dispositivo può aiutarti a trovare la soluzione migliore per la tua app.

Se devi utilizzare un wake lock, segui le best practice per i wake lock per assicurarti che non influiscano negativamente sull'efficienza del dispositivo. In particolare, assicurati che ogni dispositivo che acquisisci venga rilasciato e rilascia il blocco il più rapidamente possibile.

La tua app potrebbe anche utilizzare i wake lock anche se non li acquisisci in modo esplicito. Se vedi wake lock attribuiti all'app che non riconosci, identificare i wake lock creati da altre API può aiutarti a identificare le API che potrebbero averli creati.

Dopo aver risolto il problema nel codice, puoi verificare le correzioni utilizzando gli strumenti di debug del wake lock locale.

Vedi anche