Ovvero: quando la batteria del cellulare non dura UN CAZZO NULLA™.
Dopo due settimane a studiare il problema del battery drain, sono rimasto molto sorpreso da QUANTE cose si possono fare per ottimizzare e ridurre i consumi della batteria, intervenendo su un sacco di aspetti diversi. A quanto pare Android e’ molto poco ottimizzato, di default.
Butto giu’ questo post sia come promemoria personale, che come eventuale aiuto per chi ha problemi simili. Io al momento ho quasi raddoppiato l’autonomia, rispetto alla situazione di partenza.
La seguente serie di accorgimenti e’ stata testata su una Cyanogenmod 11, basata su Android 4.4.4 Kitkat. Sono comunque validi anche per altre versioni, purche’ abbastanza recenti. Non garantisco che tutte le app si comportino altrettanto bene su versioni di Android precedenti, ma potete provare.
La lista e’ sicuramente incompleta: sono solo gli accorgimenti che dopo due settimane di ricerche su forum e test, ho deciso di adottare io. Sono parecchi, perche’ non esiste una soluzione magica che risolva il problema dei consumi. Ottimizzare significa limare qua e la, intervenendo su una serie di aspetti diversi.
Il requisito fondamentale per la maggior parte di questi accorgimenti e’ il root.
La lista e’ ordinata per importanza, ovvero per impatto che tali accorgimenti hanno avuto sulla riduzione dei consumi. I primi sono quelli piu’ efficaci.
- Greenify:
Iberna le app in background (ovvero ne salva lo stato sul disco e le mette in standby). Utilissimo per ridurre il battery drain delle app, (ad esempio quella di Facebook, che essendo fatta parecchino A CAZZO DI CANE, sta sempre li a controllare aggiornamenti, notifiche, messaggi, e ir budello di su ma’. Anche a schermo spento, anche senza wifi, anche senza 3g, anche se tiri una martellata al cell e lo butti dal sesto piano). La versione a pagamento pur ibernando le app, NON IBERNA LE NOTIFICHE, quindi non si perde nessuna funzionalita’. Semplicemente quando arriva la notifica, non viene risvegliata anche l’app (finche’ non ci si clicca sopra).
- Gravitybox, opzione Smart Radio (richiede il framework Xposed):
Disattiva il 3g e passa al 2g quando sei connesso in wifi o quando non e’ richiesto traffico dati. Riattiva automaticamente il 3g quando qualche app richiede la connessione e non e’ disponibile il wifi. Gia’ di per se il 3g ciuccia molta piu’ batteria del 2g, ma e’ utile soprattutto in zone dove il segnale e’ scarso, dove il 3g fa piu’ fatica a connettersi, cercando continuamente il collegamento con la cella.
- WIFI scheduler :
Fa una cosa molto semplice: spegne il wifi quando non ci sono reti wifi nei dintorni. A intervalli regolari lo riaccende e controlla di nuovo. Per sapere la posizione, NON usa il GPS (che consumerebbe piu’ del wifi stesso) ma legge la posizione dai ripetitori della rete telefonica. E’ possibile marcare un ripetitore come “green”, ad esempio quello a cui il telefono si connette a casa o al lavoro. Quando rileva un ripetitore green, capisce di essere vicino a una rete wifi conosciuta, e lascia il wifi acceso.
- Impostare un governor ondemand + i/o scheduler row :
Troppo lungo spiegare i concetti di governor e di scheduler. Diciamo che cambia il modo in cui le applicazioni utilizzano il processore, evitando di saltare da un’app all’altra quando non serve. Nonostante il governor interactive, sulla carta, promettesse di essere piu’ performante, personalmente ho notato risultati migliori con ondemand+row. Vantaggi percepiti: reattivita’ molto piu’ alta delle singole app (a fronte di un piccolo overhead nel passaggio tra app diverse), minor consumo della batteria, visto che riduce l’uso complessivo della CPU. Per cambiare governor e scheduler I/O potete usare No-CPU Frills.
- Deep sleep battery saver :
A schermo spento forza (cerca di forzare) il deep sleep: spegne tutto (wifi, 3g, gps, ecc…) tranne la componente telefonica. A intervalli regolari (programmabili) riattiva tutto per 1 minuto e controlla se ci sono notifiche, poi torna in deep sleep. A schermo acceso non ha effetto. Rovescio della medaglia: le notifiche vi arriveranno solo durante le fasi di risveglio, tra un intervallo e l’altro. E’ piu’ drastico di Greenify, ma anche potenzialmente in grado di risparmiare di piu’. Personalmente non ho rinvenuto miglioramenti molto significativi rispetto a cio’ che gia’ fa Greenify, e l’ho tolto, ma probabilmente era solo perche’ ho impostato un intervallo di risveglio basso. Con intervalli piu’ elevati i consumi si riducono.
- Bootmanager (richiede framework Xposed) :
Impedisce il caricamento automatico all’avvio di app inutili e ciucciaram, che si usano solo di tanto in tanto: ebay, youtube, tripadvisor, amazon, dropbox, eccetera. Meno app in background significa meno ram occupata, meno carico per la CPU, e quindi piu’ batteria.
- Android assistant, modulo startup :
Fa la stessa cosa di bootmanager, ma permette di farlo anche per le app di sistema. E’ meno efficiente di bootmanager perche’ non impedisce l’avvio di un processo, bensi’ lo uccide subito dopo il boot. Pero’ permette di uccidere anche componenti di android inutili e/o non utilizzati: ricerca vocale, text-to-talk, sfondi animati, google now, feedback del play store, picasa uploader, eccetera. Tutti componenti che non si usano quasi mai, e che restano in background a ciucciare ram e CPU. Come bootmanager, non rompe nulla: tutte le app partono normalmente, ma solo quando vengono espressamente lanciate.
- Wakelock detector :
Di per se non ottimizza nulla, ma fa vedere per ciascuna app quanto consuma, quanto rimane accesa, quanto resta sveglia anche a schermo spento, eccetera. Utilissima per individuare le app e i componenti che ciucciano piu’ batteria e capire quali sono i responsabili. Si integra con Greenify, e lo complementa, permettendo di “greenifyzzare” selettivamente le app che consumano di piu’.
- Installare un launcher leggero :
Il launcher e’ il componente del sistema che visualizza le app, le schede, la home, eccetera. Poiche’ rimane sempre attivo, il suo consumo diventa rilevante. Trebuchet, il launcher di default di android, e’ pesante, pieno di effetti grafici fighetti ma ciucciaram, e usa una quantita’ di CPU non indifferente. Cio’ si traduce in un aumento dei consumi. Io ho installato Smart Launcher, molto piu’ semplice e leggero. Ma ce ne sono anche molti altri, in base ai gusti personali. Il punto e’ installarne uno leggero.
- Gravity screen :
La cosa che consuma piu’ batteria in assoluto, in un cellulare, e’ lo schermo. Questa app spegne da sola lo schermo appena si posa il cell sul tavolo, e lo riaccende appena lo si prende in mano. Per capire se si ha il cell in mano, se e’ appoggiato da qualche parte o se si sta camminando, usa il sensore di prossimita’ e gli accelerometri del telefono. Io non l’ho installata perche’ uso spesso il cell appoggiato sulla scrivania, in ufficio, pero’ se lo usate prevalentemente in mano, l’idea e’ buona.