Android Pie: netto miglioramento dell’autonomia
By Francesco
Google, con Android 9.0 Pie, ha apportato numerose ottimizzazion, in particolar modo per quanto riguarda il sistema energetico della nuova versione del robottino verde. Queste parole sono sicuramente conosciute dagli utenti in quanto ad ogni nuova versione sia di Android sia di iOS, viene sempre fatta la promessa di migliorare l’autonomia ma nella maggior parte dei casi non è stata realmente mantenuta.
Android Pie, la “P” sta per Power
Il caso di Android Pie è diverso poichè molti utenti su Reddit, possessori di un Pixel 2, 2 XL o Essential Phone che hanno già ricevuto la versione stabile del sistema, hanno manifestato con entusiasmo un incremento notevole della durata della batteria. Alcuni utenti hanno segnalato fino a 2 ore in più di autonomia, non solo sulle versioni stabili ma anche chi come gli utenti OnePlus o Nokia sono in fase beta.
Google questa volta sembra aver rispettato la promessa fatta introducendo una serie di ottimizzazioni che vi andremo ad elencare e spiegare nel corso di questo articolo. La fonte delle informazioni proviene direttamente dagli sviluppatori di Google, i quali in varie interviste hanno spiegato come hanno agito per affinare il sistema energetico di Android.
Adaptive Battery
Per questa nuova funzionalità il team Android ha collaborato con il team DeepMind di Google. DeepMind è una compagnia specializzata nella creazione di Intelligenze Artificiali come AlphaGo, in grado di stracciare il campione mondiale del gioco Go. L’idea di far collaborare i due team è nata poco prima del rilascio di Oreo durante una sessione di brainstorming. Entrambi i team si trovano a Londra e lavorano nello stesso palazzo ma in piani differenti ed è grazie a questa vicinanza che è stato possibile per loro, lavorare a stretto contatto.
La funzione di Adaptive Battery, in breve, cerca di capire quali applicazioni utilizzi frequentemente, mantenendole in memoria, mentre le applicazioni che usi raramente tenderà a cancellarle dalla memoria RAM. Android Pie può quindi adattarsi all’utilizzo dell’utente e, di conseguenza, utilizzare più risorse solamente per le app di cui, Adatpive Battery, pensa tu abbia bisogno. Grazie a questa nuova funzionalità non sarà più l’applicazione a decidere quando svolgere determinati processi e servizi in quanto ora deciderà il sistema operativo in base al tipo di app e come viene utilizzata, per esempio, deciderà se una determinata applicazione dovrebbe poter eseguire processi in background o meno.
L’Adaptive Battery utilizza un una rete neurale convuzionale per predire quali quali app utilizzerai nelle prossime ore e quali probabilmente non utilizzerai. E’ stato scelto questo tipo di rete neurale perchè offre il giusto bilanciamento tra la corretta decisione e l’impiego di corrente necessario. La sfida per gli sviluppatori è stata quella di portare miglioramenti all’autonomia nonostante il consumo per l’utilizzo del modello neurale perchè anche quest’ultimo ha un consumo.
Non vogliamo utilizzare il machine learning soltanto per dire “stiamo usando il machine learning”. Deve essere un miglioramento significativo.
Lo stato di Deep Sleep, si attiva dopo poco che il telefono è stato messo in standby, in questo stato la CPU è impostata per lavorare il minimo possibile. Uscendo spesso da questa modalità la CPU si risveglia e torna a regime, consumando batteria ma al Google I/O di quest’anno Google disse che in test interni hanno stimato un 30% della riduzione dei risvegli della CPU proprio grazie all’Adaptive Battery. Dopo qualche settimana dal rilascio delle beta di Pie, per device Pixel e non, Google ha raccolto e pubblicato altri dati:
- Ridotto di oltre il 5% l’utilizzo complessivo della CPU, che è uno dei fattori che consuma più energia
- ridotto di oltre il 15% l’utilizzo della CPU in determinati tipi di app
- Ridotto del 10% l’utilizzo della trasmissione dei dati in background, con alcune app si è raggiunto anche il 20%
Un altro esempio, per quanto concerne il risparmio batteria utilizzando questo sistema, si ottiene quando un’applicazione continua a tenere processi in background anche se non stai usando quest’app. Il sistema operativo tarderà l’attivazione dei processi di quest’app finchè il telefono non sarà sbloccato o addirittura sotto carica (in base all’utilizzo dell’applicazione).
Nonostante l’obiettivo non sia quello di risparmiare l’utilizzo della connessione dati, si ottiene anche quest’effetto. Le app non utilizzate non potranno accedere alla rete in quanto bloccate dal sistema per non far attivare il modem del telefono che consuma energia quando attivato, generando così un minor consumo di rete.
Adaptive Battery nonostante sia un IA, avrà effetto immediato appena si otterrà l’aggiornamento poichè gli sviluppatori di Google hanno integrato un modello già pronto, ovviamente con l’utilizzo del telefono questo modello verrà affinato automaticamente in base all’uso del dispositivo.
App Standby Buckets
Come precedentemente accennato, l’Adaptive Battery decide quali applicazioni devono avere maggiore priorità rispetto ad altre, ed è qui che entrano in gioco i Buckets, ovvero dei secchi dove vengono inserite le app. Abbiamo un totale di 5 secchi:
- Active: applicazioni in uso dall’utente, non avranno limitazioni di alcun tipo.
- Working Set: applicazioni non in uso ma che vengono utilizzate spesso (ogni giorno) anche se per poco tempo. Le app possono essere promosse in questo gruppo anche se utilizzate indirettamente. Questo secchio limita l’utilizzo di processi e di generare eventi.
- Frequent: applicazioni utilizzate qualche volta a settimana, come per esempio un’app per monitorare gli allenamenti. Le app in questo gruppo avranno delle limitazioni più decise nell’esecuzione di processi, generare eventi e non potrà ricevere messaggi da Firebase in modalità alta priorità ma solo a priorità normale.
- Rare: applicazioni utilizzate raramente come per esempio un’app di un determinato Hotel che si visita solo quando si va in vacanza. Le app in questo gruppo hanno le stesse restrizioni del gruppo Frequent e in il sistema limiterà l’accesso ad internet.
- Never: applicazioni che vengono installate ma mai eseguite. Queste applicazioni hanno tutte le restrizioni.
Sarà il sistema Android a decidere quale app a quale gruppo assegnare in modo autonomo grazie all’intelligenza artificiale. Ovviamente le app vengono assegnate in modo dinamico in base all’utilizzo dell’utente, possono essere quindi promosse in un gruppo o in caso di scarso utilizzo degradate ad un gruppo inferiore.
Ottimizzazione del carico della CPU
“P is for Power”, ovvero “P sta per energia”, così chiamano scherzosamente Android Pie gli sviluppatori di Google, proprio per la quantità di ottimizzazioni svolte in tal senso.
I processori degli smartphone odierni hanno una struttura chiamata Big.LITTLE poichè hanno 2 o più core potenti ma che consumano più energia e altri due o più core meno potenti ma che consumano meno energia. Già prima di Oreo molti dei task che non necessitavano di una rapida esecuzione venivano assegnati ai core meno potenti così da impiegare meno energia, con Pie hanno fatto attenzione hai servizi eseguiti a schermo spento che però giravano sui core principali, causando un consumo elevato.
Gli sviluppatori si sono accorti che molti servizi di sistema giravano sui core principali e quello che hanno fatto è stato spostare questi servizi in uno stack più ristretto della CPU in modo da lavorare solo sui core meno energivori. Secondo i test questa breve ottimizzazione ha portato ad un notevole risparmio di energia.
Con Android Pie molte delle chiamate di sistema fanno ora parte della userspace, grazie al vDSO (virtual dynamically linked shared object) questo si traduce in ulteriore risparmio di energia poichè una chiamata al kernel è molto pesante. Con questa piccola modifica sono stati ottenuti risultati inaspettati, un grande risparmio di batteria poichè molte app utilizzano controllano l’orario molte volte, generando numerosissime chiamate che, con le versioni precedenti di Android, inficiavano sull’autonomia.
Curiosità
Gli sviluppatori Google hanno accesso a una dashboard con l’andamento della batteria dei vari dispositivi Android, composta dai dati raccolti in forma anonima dagli utenti. Questo gli permette per esempio di notare come nel periodo natalizio la durata media della batteria sia molto superiore rispetto agli altri giorni in quanto gli utenti utilizzano meno gli smartphone per stare con parenti e amici.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.