2013-03-25 17 views
15

Stavo cercando SO e Web ma non sono riuscito a trovare una risposta sufficiente per la mia particolare domanda. Ok, eccoci:Quando il dispositivo Android entra in modalità di sospensione?

Ogni utente può modificare il timeout dello schermo su Android. (quando lo schermo si spegne quando è inattivo per __ secondi/minuti - scelta dell'utente). Ma l'utente può modificare SOLO il timeout dello schermo e non quando il dispositivo va effettivamente a dormire. Ho trovato qui cosa succede quando il dispositivo va a dormire: (Davvero una bella risposta di CommonsWare) Android Sleep/Standby Mode

Ok la mia domanda è semplice. Come faccio a sapere quando il mio telefono andrà a dormire? Andrà a dormire immediatamente dopo aver spento lo schermo? Rimarrà "sveglio" un po 'dopo lo spegnimento dello schermo? E la cosa più importante: la modalità sleep in particolare dispositivo varia dal dispositivo del marchio (come il produttore lo implementa) o dipende dalla versione ROM (per esempio, tutti i dispositivi alimentati ICS andranno a dormire X secondi dopo lo spegnimento dello schermo)?

risposta

23

Non si può mai essere veramente sicuri se il dispositivo è andato a dormire. Nella migliore delle ipotesi, posso darvi un elenco di cose che avrebbe fatto in modo che il dispositivo non è andato a dormire:

  • schermo essere su - richiede CPU e GPU, e quindi la RAM, di rimanere attivi
  • qualsiasi applicazione in possesso di un Wakelock - anche i wakelocks più bassi mantengono la CPU, anche se lo schermo può essere spento

Oltre a questo, non v'è alcuna garanzia che il dispositivo andrà a dormire n secondi dopo che lo schermo è acceso spento, anche se non vengono tenuti i wakelock. Questo è fino all'OEM e possono modificarlo.

Ricorda che i dispositivi Android hanno un'opzione per mantenere il dispositivo sbloccato per un certo periodo di tempo dopo lo spegnimento dello schermo.

+0

+1 per la bella spiegazione. – Raghunandan

+1

Anche se non ti ho chiesto risposta per me: "Ricorda che i dispositivi Android hanno un'opzione per mantenere il dispositivo sbloccato per un certo periodo di tempo dopo che lo schermo è andato in stop." Buona risposta .. – rootpanthera

8

C'è una piccola differenza nel consumo energetico quando si confronta un telefono con un laptop. I computer portatili la maggior parte delle volte funzionano con alimentazione diretta tramite caricabatterie. (Principalmente portiamo la carica con il portatile). I cellulari funzionano principalmente a batteria. (Raramente trasportiamo caricabatterie con noi).

Tenendo questo a mente, Android ha progettato in modo tale che, il telefono non consumerà la carica della batteria se l'utente non sta interagendo con il telefono. Questo per aumentare il tempo di backup della batteria per l'utente.

Ecco perché quando lo schermo LCD è spento (che significa che l'utente non sta interagendo con il telefono), con in frazione di secondi la CPU andrà anche in una modalità (modalità sleep) in cui funziona in modo minimo e risparmia la batteria. Quando la CPU è in modalità di sospensione, accetta comandi solo da RIL (livello di interfaccia radio), che è essenzialmente funzioni SMS e di chiamata e allarmi. Oltre a questo la CPU smetterà di eseguire altre funzioni applicative.

Nota: se un'applicazione richiede il tempo di CPU per il suo lavoro di emergenza quando la CPU è in modalità di sospensione, quindi può richiedere il tempo della CPU utilizzando WAKE BLOCCO.

Ad esempio: l'applicazione MP3 deve continuare a riprodurre brani al suo servizio, anche se l'utente ha spento lo schermo LCD. Ciò significa che il servizio dell'applicazione MP3 ha richiesto il tempo della CPU utilizzando WAKE BLOCKS.

La tua domanda: Come faccio a sapere quando il telefono andrà a dormire? - Ans: Semplice diventa la modalità di sospensione quando l'LCD è spento, con una frazione di secondi.

La tua domanda: Ha modalità sleep in particolare dispositivo varia da dispositivo di marca - Ans: Dal momento che Android è open source, qualsiasi OEM può prendere strato conducente, che è la licenza della GPU e può modificare l'unità responsabile potere di comportarsi in modo diverso Tutte queste modalità di sospensione e i blocchi di attivazione sono finalmente sotto il controllo del driver di Power Manager del livello del kernel Linux.

4

per la modalità sleep test/sonnecchiare in Android 6.0 è necessario utilizzare comandi successivi:

$ adb shell dumpsys battery unplug 
$ adb shell dumpsys deviceidle step 

maggiori informazioni vedi qui: Optimizing for Doze and App Standby

Problemi correlati