Google cambia il cuore di Android e promette smartphone più veloci senza cambiare hardware
Articolo Precedente
Articolo Successivo
Redazione Scienza e Tecnologia
-
Non capita tutti i giorni che un aggiornamento, peraltro silenzioso e invisibile agli occhi dell’utente, possa promettere un miglioramento tangibile delle prestazioni senza richiedere l’acquisto di un nuovo dispositivo. Eppure, è esattamente ciò che Google sta mettendo a punto in queste settimane, intervenendo direttamente sul kernel di Android, ovvero il livello più profondo e cruciale del sistema operativo. Si tratta di quel componente, spesso ignorato dai più, che funge da ponte tra le applicazioni che lanciamo e i componenti fisici del telefono, dalla CPU alla memoria, passando per i driver hardware. L’iniziativa, annunciata dal team degli sviluppatori, si chiama AutoFDO, acronimo di Automatic Feedback-Directed Optimization, e rappresenta un cambio di paradigma nel modo in cui il sistema viene ottimizzato.
Il principio alla base di AutoFDO è tanto semplice quanto rivoluzionario nel suo approccio: invece di affidarsi a istruzioni di compilazione generiche e statiche, scritte cioè prima ancora che il software incontri l’utilizzatore finale, Google ha deciso di capire come le persone usano realmente i loro telefoni per adattare il codice a quelle specifiche abitudini. Durante la compilazione tradizionale, il compilatore opera migliaia di scelte – decidere se includere una funzione direttamente nel flusso principale o quale ramo di una condizione sia più probabile venga eseguito – basandosi su mere euristiche e supposizioni. Con la nuova tecnica, invece, si raccolgono dati direttamente dall’esecuzione reale delle operazioni: in pratica, si analizzano i percorsi che le istruzioni seguono più frequentemente quando il telefono è in mano alle persone, registrando la cronologia delle diramazioni della CPU.
Naturalmente, per il kernel, raccogliere questi dati da milioni di dispositivi in giro per il mondo sarebbe complesso, e così Google ha optato per un ambiente controllato, ma estremamente rappresentativo. In laboratorio, su dispositivi Pixel, vengono simulate le attività tipiche di uno utente medio lanciando e utilizzando le cento applicazioni più popolari del momento. Un profiler campiona continuamente l’esecuzione, identificando le porzioni di codice "calde", cioè quelle maggiormente utilizzate, e quelle "fredde", che vengono eseguite più raramente. È su queste prime che si concentra il lavoro di ottimizzazione: una volta ricompilato il kernel con questi profili, il compilatore è in grado di disporre il codice in modo che le operazioni più comuni vengano eseguite con la massima efficienza, riducendo i tempi di attesa e, di conseguenza, anche il dispendio energetico.
I risultati, stando ai test interni condotti da Google, non sono affatto trascurabili. Si parla di un avvio delle applicazioni "a freddo", cioè quando non sono residenti in memoria, più rapido fino al 4,3%, e di una riduzione del tempo di boot del sistema operativo del 2,1%. Ma forse il dato più interessante riguarda Binder, il meccanismo di comunicazione interprocesso che gestisce lo scambio di dati tra i vari componenti software e hardware: qui si registrerebbe un miglioramento delle prestazioni fino al 20%, un valore che si traduce in una reattività generale molto più elevata e in una riduzione dei fastidiosi micro-ritardi durante lo scrolling o il passaggio da un'app all'altra. È la prova che intervenire su quel 40% di tempo CPU che il kernel assorbe tipicamente può davvero fare la differenza.
Un aggiornamento invisibile ma concreto per l'esperienza d'uso
Ciò che conta per chi utilizzerà questi dispositivi è che l'intera operazione avverrà in totale trasparenza. Non ci saranno interruttori da attivare nelle impostazioni, né voci di menu dedicate a spiegare cosa è cambiato sotto la scocca. Le ottimizzazioni viaggeranno attraverso i consueti aggiornamenti di sistema e saranno veicolate principalmente attraverso le versioni più recenti del kernel, a partire dai rami android16.12 e android15.6, per poi estendersi anche alle future release come la 6.18. Questo significa che i possessori di smartphone che riceveranno questi aggiornamenti, indipendentemente dal fatto che si tratti di modelli di punta o di fascia media, potrebbero trovarsi tra le mani un dispositivo più scattante, con un'interfaccia più fluida e, potenzialmente, con una batteria un po' più longeva, semplicemente perché il sistema spreca meno energia per eseguire le operazioni di routine.
Una strategia conservativa per non intaccare la stabilità
Una domanda sorge spontanea, quando si parla di interventi così profondi su un sistema operativo: tutto questo non rischia di compromettere la stabilità generale? Google ha pensato anche a questo, adottando un approccio definito "conservativo per default". Poiché AutoFDO non va a modificare la logica del codice sorgente, ma agisce esclusivamente sulle euristiche del compilatore – decidendo come disporre il codice o quali funzioni rendere inline – il funzionamento logico del kernel rimane invariato. Inoltre, per quelle funzioni considerate "fredde", cioè che non rientrano nei profili raccolti, si continuerà a utilizzare il metodo di compilazione standard. Questo garantisce che non si verifichino regressioni o comportamenti inaspettati in quelle parti del sistema che vengono eseguite solo occasionalmente, preservando così l'affidabilità complessiva del telefono.
L'ambizione di estendere l'ottimizzazione a tutto l'ecosistema
L'intervento attuale, per quanto significativo, è solo un primo passo. Le ambizioni del team di sviluppo non si fermano qui, e nei piani futuri c'è l'intenzione di applicare la tecnica AutoFDO anche ad altri componenti. Si parla, ad esempio, dell'ottimizzazione dei moduli GKI, il kernel generico di Android, e persino dei moduli forniti dai vendor, cioè quei driver specifici che i produttori di hardware scrivono per far funzionare al meglio componenti come fotocamere, modem o sensori. Se questo progetto andasse in porto, significherebbe che ogni singolo strato software che contribuisce all'esperienza d'uso quotidiana potrebbe essere tarato sulle effettive modalità di impiego degli utenti, portando a un livello di ottimizzazione senza precedenti per l'ecosistema Android.




