I blocchi di risveglio parziali sono un meccanismo nell'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). L'app acquisisce un blocco sveglia parziale chiamando acquire()
con il flag PARTIAL_WAKE_LOCK
o utilizzando altre API che acquisiscono blocchi sveglia.
Un blocco parziale del risveglio diventa bloccato se viene mantenuto per molto tempo mentre la tua app è in esecuzione in background (nessuna parte dell'app è visibile all'utente). Questa condizione scarica la batteria del dispositivo perché impedisce al dispositivo di entrare in stati di alimentazione inferiori. I blocchi di risveglio parziali devono essere utilizzati solo quando necessario e rilasciati non appena non sono più necessari.
Se la tua app ha un blocco parziale della riattivazione bloccato, puoi utilizzare le indicazioni riportate in questa pagina per diagnosticare e risolvere il problema.
Rilevare il problema
Potresti non sapere sempre che i wakelock parziali della tua app sono bloccati. Se hai già pubblicato la tua app, Android vitals può aiutarti a rilevare il problema.
Android vitals
Android vitals può aiutarti a migliorare le prestazioni della tua app inviandoti un avviso tramite Play Console quando la tua app presenta blocchi parziali del risveglio bloccati. Android vitals segnala i wakelock parziali come bloccati quando si verificano almeno un wakelock parziale di un'ora in background in un periodo di 24 ore.
Il numero di sessioni della batteria visualizzato è aggregato per tutti gli utenti misurati dell'app. Per informazioni su come Google Play raccoglie i dati di Android vitals, consulta la documentazione di Play Console.
Una volta che sai che la tua app ha blocchi parziali di riattivazione bloccati, il passaggio successivo è risolvere il problema.
Risolvi il problema
Poiché i blocchi di attivazione possono scaricare la batteria del dispositivo, non dovresti utilizzarli se esiste un'alternativa. La documentazione su come scegliere l'API giusta per mantenere il dispositivo attivo può aiutarti a trovare la soluzione migliore per la tua app.
Se devi utilizzare un blocco di attivazione, segui le best practice per i blocchi di attivazione per assicurarti che non influiscano negativamente sull'efficienza del dispositivo. In particolare, assicurati che ogni dispositivo acquistato sia sbloccato e rilascia la serratura il più rapidamente possibile.
Dopo aver risolto il problema nel codice, puoi verificare le correzioni utilizzando gli strumenti di debug del blocco di attivazione locale.
Vedi anche
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 riferimento senza Macrobenchmark