Per migliorare la durata della batteria, Android può influire sullo stato del dispositivo: monitoraggio dell'uso e del risveglio del dispositivo. La piattaforma può entrare nello stato sospensione per sospendere le attività dalla corsa mentre il dispositivo non è utilizzato.
Informazioni su Doze
La funzionalità di sospensione prolunga la durata della batteria posticipando la CPU in background dell'app e Attività di rete quando un dispositivo rimane inutilizzato per lunghi periodi.
I dispositivi inattivi in Sospensione periodicamente entrano in un periodo di manutenzione, durante il quale le app possono completare i lavori in sospeso (sincronizzazioni, lavori e così via). Sospensione e poi ripresa di sonno per un periodo di tempo più lungo, seguito da un altro periodo di manutenzione. La continua la sequenza di sospensione del sonno/manutenzione, aumentando la durata inattivo ogni volta, fino a quando non viene raggiunto il numero massimo di ore di sospensione. Per niente volte, un dispositivo in modalità Sospensione rimane consapevole del movimento ed esce immediatamente dalla modalità Sospensione se viene rilevato un movimento.
Android 7.0 e versioni successive estende la funzionalità Sospensione per attivare un insieme più leggero di ottimizzazioni Ogni volta che un utente spegne lo schermo del dispositivo, anche se continua a per spostarsi, estendendo la durata della batteria.
I produttori di dispositivi generalmente configurano i servizi di sistema critici per da Sospensione. Gli utenti possono anche escludere app specifiche dalla funzionalità Sospensione utilizzando il comando Menu Impostazioni. Tuttavia, l'esclusione delle app potrebbe causare un consumo eccessivo della batteria del dispositivo. Per impostazione predefinita, la funzionalità Sospensione è disattivata in AOSP. della Per informazioni dettagliate sull'attivazione della funzionalità Sospensione, consulta la sezione Integrazione della funzionalità Sospensione.
Requisiti per la sospensione
Il supporto della sospensione richiede che il dispositivo disponga di un servizio di messaggistica cloud, ad esempio Firebase Cloud Messaging (FCM). Eventi di trigger esterni, come i messaggi cloud, può riattivare temporaneamente le app per svolgere il lavoro mentre il dispositivo rimane in modalità Sospensione.
Il supporto completo della funzionalità Sospensione richiede anche significativo rilevatore di movimento (SMD) sul dispositivo; mentre la modalità Sospensione leggera Android 7.0 e versioni successive non richiede SMD. Se la funzionalità Sospensione è attiva su un dispositivo che:
- Ha un SMD, le ottimizzazioni della sospensione sono complete (include i ottimizzazioni).
- Non ha un SMD, vengono eseguite solo le ottimizzazioni della funzionalità Sospensione leggera.
Ciclo di vita della sospensione
La sospensione inizia quando la piattaforma rileva che il dispositivo è inattivo e termina quando si verificano una o più attività con criteri di uscita.
La piattaforma rileva che un dispositivo è inattivo quando:
- Il dispositivo è fermo (con SMD).
- Lo schermo del dispositivo è spento per un certo periodo di tempo.
La modalità Sospensione non si attiva quando un dispositivo alimentato a batteria è collegato a un caricabatterie.
Durante la sospensione
La piattaforma tenta di mantenere il sistema in stato di sospensione, periodicamente il ripristino del normale funzionamento durante un periodo di manutenzione e la restituzione del dispositivo dormire per cicli ripetuti più lunghi. Durante il sonno: sono attive le seguenti limitazioni:
- Alle app non è consentito l'accesso alla rete.
- Wakelock delle app ignorati.
- Gli allarmi sono stati differiti. Sono escluse sveglie e sveglie impostate tramite
setAndAllowWhileIdle()
(massimo 1 ogni 15 minuti per app mentre in modalità Sospensione). Questa esenzione è destinata alle app (ad esempio Calendar) che devono mostrare notifiche di promemoria di eventi. - Le ricerche di reti Wi-Fi non vengono eseguite.
SyncAdapter
sincronizzazioni eJobScheduler
job differiti fino al successivo periodo di manutenzione.- Le app che ricevono SMS e MMS vengono inserite in una lista consentita temporanea per possono completare l'elaborazione.
Esci
La piattaforma chiude il dispositivo dalla modalità Sospensione quando rileva:
- Interazione dell'utente con il dispositivo
- Movimento del dispositivo
- Si attiva lo schermo del dispositivo
- Sveglia imminente
Se ricevi notifiche, il dispositivo non esce dalla modalità Sospensione.
Android 7.0 e versioni successive estende la funzionalità Sospensione attivando una modalità Sonno leggera quando lo schermo è spento, prima che il dispositivo sia inattivo.
Figura 1. Modalità di sospensione per dispositivi non stazionari e fissi.
Azione | Sospensione | Sospensione leggera |
---|---|---|
Attivazione | Schermo spento, a batteria, fermo | Schermo non attivo, a batteria (scollegato) |
Tempi | Aumento successivo dei periodi di manutenzione | Periodi ripetuti di N minuti con periodi di manutenzione |
Restrizioni | Nessun accesso alla rete, wakelock o ricerca GPS/Wi-Fi; sveglie e job/sincronizzazioni differito | Nessun accesso alla rete. di job/sincronizzazioni differite tranne che durante i periodi di manutenzione |
Comportamento | Solo i messaggi di notifiche push ad alta priorità ricevuti | tutti i messaggi in tempo reale (messaggi istantanei, chiamate ecc.) ricevuti; messaggio di notifica push ad alta priorità che consente l'accesso temporaneo alla rete |
Esci | Sveglia con movimento, schermo acceso o sveglia | Schermo acceso |
Interazione con Standby delle app
- Il tempo trascorso in modalità Sospensione non viene conteggiato ai fini dello standby delle app.
- Mentre il dispositivo è in modalità Sospensione, le app inattive possono funzionare normalmente operazioni almeno una volta al giorno.
Integra Sospensione
Quando la funzionalità Sospensione è attiva, i dispositivi che supportano
SENSOR_TYPE_SIGNIFICANT_MOTION
eseguire ottimizzazioni complete della sospensione (incluse quelle leggere);
i dispositivi senza SMD eseguono solo ottimizzazioni di base. Android
seleziona automaticamente le ottimizzazioni di sospensione e il fornitore
non è necessaria.
Per attivare la funzionalità Sospensione per un dispositivo:
- Verifica che sul dispositivo sia installato un servizio di messaggistica cloud.
- Nel file di configurazione dell'overlay del dispositivo
overlay/frameworks/base/core/res/res/values/config.xml
, impostato Daconfig_enableAutoPowerModes
atrue
:<bool name="config_enableAutoPowerModes">true</bool>
In AOSP, questo parametro è impostato sufalse
(Sospensione disattivata) per impostazione predefinita.
- Verifica che le app e i servizi precaricati:
- Utilizza la
risparmio energetico
linee guida per l'ottimizzazione. Per maggiori dettagli, consulta la sezione Test e
per ottimizzare le app.
OPPURE
- Sono esenti da sospensione e standby delle app. Per maggiori dettagli, vedi App esenti.
- Utilizza la
risparmio energetico
linee guida per l'ottimizzazione. Per maggiori dettagli, consulta la sezione Test e
per ottimizzare le app.
- Conferma che i servizi necessari siano esenti da Sospensione.
Suggerimenti
- Se possibile, utilizza FCM per downstream di messaggistica.
- Se gli utenti devono visualizzare subito una notifica, utilizza un FCM messaggio ad alta priorità.
- Fornisci informazioni sufficienti all'interno del messaggio payload (per evitare successivi accessi alla rete non necessari).
- Imposta allarmi critici con
setAndAllowWhileIdle()
esetExactAndAllowWhileIdle()
.
Testare e ottimizzare le app
Testa tutte le app (in particolare quelle precaricate) in modalità Sospensione. Per maggiori dettagli, consulta Test grazie alla funzionalità Sospensione e Standby delle app.