Gestione energetica della piattaforma

Per migliorare la durata della batteria del dispositivo, Android può influire sullo stato del dispositivo monitorando l'utilizzo e lo stato di veglia del dispositivo. La piattaforma può entrare in uno stato di sospensione per sospendere l'esecuzione delle attività mentre il dispositivo non è utilizzato.

Dormire

Doze prolunga la durata della batteria rinviando l'attività in background della CPU e della rete dell'app quando un dispositivo rimane inutilizzato per lunghi periodi.

I dispositivi inattivi in ​​Doze entrano periodicamente in una finestra di manutenzione, durante la quale le app possono completare il lavoro in sospeso (sincronizzazione, lavori, ecc.). Doze poi riprende il sonno per un periodo di tempo più lungo, seguito da un'altra finestra di manutenzione. La piattaforma continua la sequenza di sonno/manutenzione Doze, aumentando ogni volta la durata di inattività, fino al raggiungimento di un massimo di alcune ore di sonno. In ogni momento, un dispositivo in Doze rimane consapevole del movimento e abbandona immediatamente Doze se viene rilevato un movimento.

Android 7.0 e versioni successive estendono Doze per attivare una serie più leggera di ottimizzazioni ogni volta che un utente spegne lo schermo del dispositivo, anche quando l'utente continua a muoversi, consentendo una maggiore durata della batteria.

I servizi di sistema critici sono generalmente impostati dai produttori di dispositivi per essere esenti da Doze. Gli utenti possono anche esentare app specifiche da Doze utilizzando il menu Impostazioni. Tuttavia, le app esentate potrebbero causare il consumo della batteria del dispositivo. Per impostazione predefinita, Doze è disabilitato in AOSP; per i dettagli sull'abilitazione di Doze, vedere Integrazione di Doze .

Requisiti di sonnecchiamento

Il supporto Doze richiede che il dispositivo disponga di un servizio di messaggistica cloud, come Firebase Cloud Messaging (FCM) . Eventi trigger esterni, come i messaggi cloud, possono riattivare temporaneamente le app affinché funzionino mentre il dispositivo rimane in modalità Doze.

Il supporto Full Doze richiede inoltre un significativo rilevatore di movimento (SMD) sul dispositivo; tuttavia, la modalità Doze leggera in Android 7.0 e versioni successive non richiede un SMD. Se Doze è abilitato su un dispositivo che:

  • Ha un SMD, si verificano ottimizzazioni Doze complete (include ottimizzazioni leggere).
  • Non ha SMD, si verificano solo le ottimizzazioni Doze leggere.

Ciclo di vita del sonno

Il doze inizia quando la piattaforma rileva che il dispositivo è inattivo e termina quando si verificano una o più attività dei criteri di uscita.

Rilevamento

La piattaforma rileva che un dispositivo è inattivo quando:

  • Il dispositivo è fermo (utilizzando SMD).
  • Lo schermo del dispositivo è spento per un certo periodo di tempo.

La modalità Doze non si attiva mentre un dispositivo alimentato a batteria è collegato a un caricabatterie.

Durante il sonnellino

La piattaforma tenta di mantenere il sistema in uno stato di sospensione, riprendendo periodicamente le normali operazioni durante una finestra di manutenzione, quindi riportando il dispositivo in modalità di sospensione per periodi ripetuti più lunghi. Durante il sonno sono attive le seguenti restrizioni:

  • Alle app non è consentito l'accesso alla rete.
  • Wakelock dell'app ignorati.
  • Gli allarmi sono rinviati. Esclude gli allarmi della sveglia e gli allarmi impostati utilizzando setAndAllowWhileIdle() (limitato a 1 ogni 15 minuti per app in Doze). Questa esenzione è destinata alle app (come Calendario) che devono mostrare le notifiche di promemoria degli eventi.
  • Le scansioni Wi-Fi non vengono eseguite.
  • Sincronizzazioni SyncAdapter e processi JobScheduler rinviati fino alla successiva finestra di manutenzione.
  • Le app che ricevono messaggi SMS e MMS vengono inserite in una whitelist temporanea in modo che possano completare l'elaborazione.

Uscita

La piattaforma esce dal dispositivo Doze quando rileva:

  • Interazione dell'utente con il dispositivo
  • Movimento del dispositivo
  • Lo schermo del dispositivo si accende
  • Allarme sveglia imminente

Le notifiche non causano l'uscita del dispositivo da Doze.

Android 7.0 e versioni successive estendono Doze abilitando una modalità di sospensione leggera quando lo schermo è spento, prima che il dispositivo sia inattivo.

Figura 1. Modalità doze per dispositivi non stazionari e fissi
Azione Dormire Sonnecchiare leggero
Grilletto Schermo spento, a batteria, fermo Schermo spento, a batteria (scollegato)
Tempistica Periodi successivi crescenti con mantenimento Periodi ripetuti di N minuti con finestre di manutenzione
Restrizioni Nessun accesso alla rete, wakelock o scansione GPS/Wi-Fi; allarmi e lavori/sincronizzazione rinviati Nessun accesso alla rete; lavori/sincronizzazione rinviati tranne durante le finestre di manutenzione
Comportamento Sono stati ricevuti solo messaggi di notifica push ad alta priorità Tutti i messaggi in tempo reale (messaggi istantanei, chiamate, ecc.) ricevuti; il messaggio di notifica push ad alta priorità consente l'accesso temporaneo alla rete
Uscita Movimento, schermo acceso o sveglia Schermo acceso

Interazione con App Standby

  • Il tempo trascorso in Doze non viene conteggiato ai fini dello standby dell'app.
  • Mentre il dispositivo è in modalità Doze, le app inattive possono eseguire le normali operazioni almeno una volta al giorno.

Integrazione di Doze

Quando Doze è abilitato, i dispositivi che supportano SENSOR_TYPE_SIGNIFICANT_MOTION eseguono ottimizzazioni Doze complete (incluse ottimizzazioni leggere); i dispositivi senza SMD eseguono solo ottimizzazioni Doze leggere. Android seleziona automaticamente le ottimizzazioni Doze appropriate e la configurazione del fornitore non è necessaria.

Per abilitare Doze per un dispositivo:

  1. Verifica che sul dispositivo sia installato un servizio di messaggistica cloud.
  2. Nel file di configurazione dell'overlay del dispositivo overlay overlay/frameworks/base/core/res/res/values/config.xml , imposta config_enableAutoPowerModes su true :
    <bool name="config_enableAutoPowerModes">true</bool>
    
    In AOSP, questo parametro è impostato su false (Doze disabilitato) per impostazione predefinita.
  3. Conferma che le app e i servizi precaricati:
  4. Confermare che i servizi necessari siano esentati da Doze.

Suggerimenti

Testare e ottimizzare le app

Testa tutte le app (in particolare le app precaricate) in modalità Doze. Per i dettagli, fare riferimento a Test con Doze e App Standby .