Home > Guide e tutorial per Android > Risparmiare batteria su Android: Operazioni avanzate

Risparmiare batteria su Android: Operazioni avanzate

Eccoci al secondo approfondimento sulla gestione ottimale della batteria su un device Android. Se nella prima puntata ci siamo limitati ad un’analisi sulle operazioni basilari, oggi vedremo più nel dettaglio come preservare ogni singola goccia di energia delle nostre batterie al litio. A tal proposito, prima di proseguire nella lettura, vi consigliamo di dare uno sguardo al nostro precedente articolo, in modo da avere un’idea più completa di come viene gestito il consumo energetico nei nostri terminali.

Le operazioni avanzate di cui vogliamo parlare, passano necessariamente per il controllo dei consumi nel momento in cui il nostro Androide si trova a riposo, fermo sul tavolino, in borsetta o in tasca.

La nostra analisi parte col fissare importanti considerazioni:

  1. Android è programmato per entrare in uno stato di deep sleep non appena le condizioni lo permettono. Questa situazione di sonno profondo permette di limitare al minimo i consumi energetici del dispositivo.
  2. Deep sleep non significa semplicemente stand-by. Quando viene spento il display, infatti, il dispositivo va in stand-by, ma non è detto che questa condizione consenta l’attivazione del sonno profondo.
  3. Per risparmiare batteria dobbiamo fare in modo che il dispositivo entri velocemente nello stato di deep sleep e che possibilmente non venga risvegliato.

E’ chiaro, quindi, che gli accorgimenti che andremo a vedere, sono per lo più finezze. Ci vorrà un po’ di tempo per comprendere a fondo il meccanismo di risparmio energetico ma sicuramente non rimarrete più “fregati” da consumi anomali che si ripresentano a random e , ovviamente, proprio quando state cercando di arrivare a sera con quel misero 20% di carica residua.

Wakelocks

Ora che abbiamo compreso come la chiave di volta sia lo stato di deep sleep, scopriamo come evitare che il “sonno” del nostro device venga disturbato.

Ogni volta che Android viene risvegliato, subisce un cosiddetto wakelock. Il nostro obiettivo è quello di conoscere meglio i wakelock, controllarli, e quando possibile, eliminarli.

Per fortuna ci vengono in aiuto un paio di applicazioni, nella fattispecie “Wakelock detector” e “BetterBatteryStats“. Ci concentreremo sulla prima poichè più intuitiva.

Wakelock Detector [ROOT]
Wakelock Detector [ROOT]
Developer: UzumApps
Price: Free+

Come si presenta wakelock detector

1. Elenco processi che hanno portato a wakelock 2. Tempo di attivazione del processo 3. Contatore occorrenze del wakelock 4. Durata dell'analisi dei wakelocks 5. Modifica criterio di ordinamento nell'elenco wakelocks 6. Visualizza tipo di wakelocks 7. Rapporto tempo in deepsleep/tempo attività

1. Elenco processi che hanno portato a wakelock
2. Tempo di attivazione del processo
3. Contatore occorrenze del wakelock
4. Durata dell’analisi dei wakelocks
5. Modifica criterio di ordinamento nell’elenco wakelocks
6. Visualizza tipo di wakelocks
7. Rapporto tempo in deepsleep/tempo attività

Vediamo con 2 esempi come utilizzare Wakelock detector: analizziamo la prima e la terza voce presente nell’elenco dello screenshot sopra, rispettivamente i wakelocks portati dall’app Videorecensione e quelli causati dai Servizi Google.

Innanzi tutto è bene considerare che wakelock detector è esclusivamente un’app informativa, cioè uno strumento che ci permette di analizzare dettagliatamente il comportamento del nostro device ma non prevede funzioni per correggere eventuali comportamenti anomali. Il nostro compito è quello di saper leggere le statistiche e se possibile, risolvere il problema.

Videorecensione

Dall’elenco di wakelock detector emerge che Videorecensione è rimasta attiva a nostra insaputa per ben 17 minuti, suddivisi in 8 wakelocks. Cliccando sulla voce relativa avremo accesso ad una schermata con maggiori dettagli:

Screenshot_2014-01-24-18-36-48

Come vedete, sono presenti due diverse voci che vengono riassunte nell’indicazione “Videorecensione”. Entrambe sono veri e propri codici identificativi dei wakelock portati dall’app.  In questo caso il peso maggiore è apportato dal codice com.videorecensione_WAKE_LOCK_TAG. Il codice corrisponde ad un risveglio generico.

A questo punto, conoscendo l’app responsabile dei risvegli valutiamo quali possono essere le cause. Nella fattispecie, l’app scarica con una frequenza troppo elevata, un discreta mole di dati, sotto forma di feed RSS. In particolare scorrendo con attenzione le impostazioni dell’app, abbiamo visto che ogni 5 minuti venivano aggiornati tutti i dati, portando inevitabilmente a wakelock prolungati ed estremamente deleteri per la durata della batteria.

Nella maggior parte dei casi, i codici dei wakelocks sono intuitivi, ed in ogni caso sono sempre attribuiti all’applicazione o processo responsabile. Se il codice è complesso non disperate ed effettuate una ricerca su Google. In rete si trova moltissimo materiale che potrebbe fare al caso vostro.

Servizi Google

Screenshot_2014-01-24-18-37-09 Screenshot_2014-01-24-18-37-14

E’ chiaro che questo caso sia più complesso, vedete infatti, come siano davvero moltissime le voci che concorrono alla creazione di “Servizi Google”. Questa volta i risvegli non sono prolungati ma estremamente frequenti. Concentriamoci sulla voce con più occorrenze.

Nell’immagine di destra notate l’indicazione LocationManagerService con la bellezza di 203 presenze in soli 52 minuti. Il codice è intuitivo ed indica tutti processi coinvolti nella geolocalizzazione di Google. Questo esempio ci da l’idea di quanto sia importante utilizzare la localizzazione solo quando strettamente necessaria. Se sul vostro Android avete già aggiornato a KitKat, avrete la possibilità di impostare diversi livelli di precisione nella geolocalizzazione, ovviamente con maggiore precisione la durata della batteria ne risentirà.

Altre informazioni

Nelle immagini sottostanti altre due schermate di wakelock detector: Alarm e Screen.

Screenshot_2014-01-24-18-37-48 Screenshot_2014-01-24-18-38-15
  • ALARM: elenca i risvegli programmati
  • SCREEN: non si tratta di veri e propri risvegli ma di situazioni in cui il dispositivo viene obbligato a non andare in deepsleep.

Informazioni avanzate

Dalle impostazioni dell’applicazione è possibile abilitare la scheda con i wakelocks del kernel.

Screenshot_2014-01-25-08-38-51

I risvegli di questa sezione sono portati da specifiche richieste del kernel.  I codici identificativi dei risvegli, non sono intuitivi. Perciò vi forniamo una tabella riassuntiva dove sono spiegati i più ricorrenti. Anche in questo caso vale il discorso della ricerca su Google direttamente con il codice del wakelock.

PowerManagerService Sotto questa voce sono riassunti tutti i wakelocks della CPU, quindi per eliminarlo dovrete controllare i responsabili nella scheda apposita
Deleted_wake_locks E’ la voce che rimane di un wakelock dopo che la sua causa è stata eliminata. Se ad esempio eliminate un’app energivora senza cancellarne prima i dati, il risultato sarà una voce sostanziosa con questo codice.
Suspend_backoff Indica che il sistema ha mantenuto il dispositivo attivo in quanto riceveva continuamente richieste di risveglio. Spesso la causa è un malfunzionamento del wifi, un wipe cache e dalvik da recovery risolvono la situazione nella maggior parte dei casi.
wlan_wake Risveglio causato dal wifi. Molto spesso la richiesta proviene da app con sincronizzazione in push.
msm_hsic_host wakelock Portato dall’attivazione dello scambio dati in 3G. Lo scambio in 3G con dispositivo in stand-by è generalmente un’operazione molto veloce. In questo caso non è importante il numero di occorrenze, quanto piuttosto la loro durata. Se troppo elevata state attenti al vostro credito residuo! Potrebbe essere un problema del kernel o di un’applicazione che sta scaricando a vostra insaputa.
Mali_wakelock
Attenzione, un’app sta utilizzando in maniera anomala la vostra CPU (vale per i disp. ARM). Spesso si verifica con Themer, Launcher buggati, sfondi dinamici e applicazioni che sostituiscono la lockscreen.
svnet dormancy Capita quando ci spostiamo velocemente in auto o in treno, indica che il dispositivo è passato più volte da una cella telefonica ad un’altra. La soluzione è quella di impostare la modalità aereo quando le condizioni lo permettono.

Conclusioni

Nei nostri due appuntamenti non abbiamo mai parlato di calibrazione della batteria. Esistono in rete molte “leggende metropolitane” sull’argomento, ma la soluzione è piuttosto complessa e non applicabile a tutti i dispositivi.

Abbiate cura della batteria cercando di non lasciarla in carica troppo oltre i tempi di normale caricamento e se, possibile, non fatela scaricare fino alla fine. Queste sono piccole accortezze che certamente ne prolungheranno la vita. Per quanto riguarda la conservazione a lungo termine, tenete sempre presente che il nemico più grande per questi sistemi è l’eccessivo calore. Un esempio classico è quello di lasciare lo smartphone in auto sotto il sole, nulla di più devastante per la vostra batteria.

A nostro parere, WakeLock detector o un’app simile come BetterBatteryStats, andrebbe sempre conservata sul proprio terminale. Le operazioni che vi abbiamo proposto non sono rapide e richiedono attenzione e dedizione, tuttavia, con un po’ di esperienza, la gestione della batteria non avrà segreti. Utilizzate i motori di ricerca per scoprire a cosa si riferiscono i codici dei wakelocks e se avete dubbi, scriveteci nei commenti. Saremo pronti a darvi una mano il più velocemente possibile.

Via