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.

Sonnecchiare

Doze prolunga la durata della batteria rinviando la CPU in background dell'app e l'attività di rete quando un dispositivo non viene utilizzato 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 riprende quindi il sonno per un periodo di tempo più lungo, seguito da un'altra finestra di manutenzione. La piattaforma continua la sequenza di sonno/mantenimento Doze, aumentando ogni volta la durata dell'inattività, fino al raggiungimento di un massimo di alcune ore di sonno. In ogni momento, un dispositivo in Doze rimane consapevole del movimento e lascia 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 esentati da Doze. Gli utenti possono anche esentare app specifiche da Doze utilizzando il menu Impostazioni. Tuttavia, l'esenzione delle app potrebbe 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 .

Dose requisiti

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

Il supporto completo di Doze richiede anche un rilevatore di movimento significativo (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:

  • Dispone di un SMD, si verificano ottimizzazioni Doze complete (incluse ottimizzazioni leggere).
  • Non ha un SMD, si verificano solo le ottimizzazioni Doze leggere.

Dose ciclo di vita

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 (usando SMD).
  • Lo schermo del dispositivo è spento per un certo periodo di tempo.

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

Durante Doze

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 delle app ignorati.
  • Gli allarmi sono differiti. Esclude le sveglie e le sveglie impostate utilizzando setAndAllowWhileIdle() (limitato a 1 ogni 15 minuti per app in Doze). Questa esenzione è concepita per le app (come Calendar) che devono mostrare le notifiche di promemoria degli eventi.
  • Le scansioni Wi-Fi non vengono eseguite.
  • Le sincronizzazioni SyncAdapter e i lavori JobScheduler posticipati fino alla successiva finestra di manutenzione.
  • Le app che ricevono SMS e MMS vengono inserite in una whitelist temporanea in modo che possano completare la loro elaborazione.

Uscita

La piattaforma esce dal dispositivo da Doze quando rileva:

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

Le notifiche non fanno uscire il dispositivo da Doze.

Android 7.0 e versioni successive estende 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 stazionari
Azione Sonnecchiare Doze leggero
Grilletto Schermo spento, a batteria, fermo Schermo spento, a batteria (scollegato)
Tempi Periodi successivi aumentando con la manutenzione Periodi ripetuti di N minuti con finestre di manutenzione
Restrizioni Nessun accesso alla rete, wakelock o scansione GPS/Wi-Fi; allarmi e lavori/sincronizzazioni differiti Nessun accesso alla rete; lavori/sincronizzazioni posticipate tranne durante le finestre di manutenzione
Comportamento Ricevuti solo messaggi di notifica push con priorità alta 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 conta per l'App Standby.
  • Mentre il dispositivo è in modalità Doze, le app inattive possono eseguire operazioni normali almeno una volta al giorno.

Integrare 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 overlay 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. Conferma che i servizi necessari sono esentati da Doze.

Consigli

Test e ottimizzazione delle 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 .