I wakelock parziali sono un meccanismo dell'API PowerManager che consente agli sviluppatori
di mantenere in esecuzione la CPU dopo che lo schermo di un dispositivo si spegne (a causa del timeout del sistema o della pressione del pulsante di accensione da parte dell'utente). La tua app acquisisce un
wakelock parziale chiamando acquire() con il flag PARTIAL_WAKE_LOCK
o utilizzando altre API che acquisiscono wakelock.
L'uso eccessivo di wakelock parziali scarica la batteria del dispositivo perché impedisce al dispositivo di entrare in stati di consumo energetico inferiore. I wakelock 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.
Rilevare il problema
Android vitals può aiutarti a scoprire quando l'utilizzo di wakelock parziali da parte della tua app è eccessivo.
Android vitals
Android vitals può contribuire a migliorare le prestazioni della tua app inviandoti un avviso tramite Play Console quando l'utilizzo di wakelock parziali da parte della tua app è eccessivo.
Android vitals segnala l'utilizzo di wakelock parziali come eccessivo quando tutti i wakelock parziali, sommati, vengono eseguiti per 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 wakelock i wakelock creati dalle API avviate dall'utente per audio, posizione e JobScheduler.
La dashboard di Android vitals relativa ai wakelock parziali eccessivi fornisce suddivisioni dei nomi dei wakelock non esentati associati alla tua app, mostrando le sessioni e le durate interessate.
Se i wakelock parziali eccessivi si verificano in più del 5% delle sessioni dell'app su tutti i dispositivi in un periodo di 28 giorni, ciò può influire sulla visibilità della tua app su Play.
Dopo aver scoperto che la tua app ha wakelock parziali eccessivi, il passaggio successivo è risolvere il problema.
Risolvere il problema
Poiché i wakelock 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 wakelock, segui le best practice per i wakelock per assicurarti che non compromettano l'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 wakelock anche se non li acquisisci esplicitamente. Se vedi wakelock attribuiti all'app che non riconosci, l'identificazione dei wakelock 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 dei wakelock locali.
Vedi anche
- Wakelock parziali bloccati
- Scegliere l'API giusta per mantenere attivo il dispositivo
- Documentazione sui wakelock
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Frame bloccati
- Eseguire benchmark nell'integrazione continua
- Creare e misurare i profili di base senza Macrobenchmark