Di versione in versione, Google ha da sempre cercato di massimizzare le prestazioni di Android, ottimizzandolo sempre al meglio, grazie anche all’introduzione di particolari tecnologie software. Come dimenticare il famoso “Project Butter” introdotto con Jelly Bean, necessario per velocizzare l’interfaccia del sistema operativo. Bene, con Android 4.4 KitKat, l’ultima distribuzione di Android, Google ha raggiunto un nuovo livello di ottimizzazione, al fine di garantire quella fluidità che mancava anche ai dispositivi di fascia medio-bassa, grazie ad un massiccio lavoro sulla RAM.
Quindi potremmo definire KitKat come una versione “lite” di Android, progettata per girare al meglio su quei dispositivi che peccano di potenza pura, ma non per questo limitata nelle funzionalità.
Ma come è riuscita Google ad ottenere tali risultati? Ce lo spiega David Burke, capo delle operazioni di ingegneria di Android. Da premettere che il processo di alleggerimento del sistema prende il nome di “Project Svelte”, e va ad affiancare il già citato Butter. Queste le parole di Burke, rilasciate durante un’intervista a ReadWrite, riguardo il Project Svelte:
Ci stavamo scherzando su quando la prima cosa che avevo cominciato fare era quella di lavorare sul Project Butter per rendere più fluido il sistema. Il fatto è, però, che questo aggiungeva peso. Così ho deciso di lavorare al Project Svelte per alleggerire il sistema, ed ora il mio contributo ad Android è fondamentalmente zero.
Inoltre continua affermando:
L’obiettivo di project Svelte era in sostanza di ridurre “l’impronta” in memoria (RAM) per adattarla ad uno spazio di 512 MB. Il modo in cui lo abbiamo fatto, e che non abbiamo ancora detto, è stato quello di prendere un Nexus 4 ed adattarlo a lavorare a 512 MB di RAM. Abbiamo adattato la risoluzione del display alla qHD, cioè 960×540 pixel, perchè questo è il genere di risoluzione che di solito si vede su smartphone entry-level. Abbiamo ridotto le CPU operanti a 2 invece di utilizzarne 4, abbiamo ridotto la frequenza di clock ed altro ancora. Abbiamo letteralmente trasformato il Nexus 4 nel nostro smartphone predefinito per il test di Android 4.4. E’ stato difficile iniziare così.
In pratica Google si è servita di un Nexus 4 “strozzato” virtualmente, per riuscire ad emulare le varie situazioni, anche critiche, dei dispositivi di fascia medio-bassa, così da poter capire cosa andava migliorato e a cosa lavorare di più. Ottimo lavoro.
Possiamo individuare ben 4 obiettivi che Google si è posta durante il processo di alleggerimento di Android KitKat:
- Ridurre l’impronta del sistema
- Ridurre l’utilizzo di RAM delle applicazioni sui dispositivi Nexus (Google Experience)
- Fixare il comportamento delle applicazioni nelle situazioni di scarsa memoria disponibile, crash compresi
- Fornire strumenti di misura migliori per il monitoraggio delle applicazioni, per far comprendere agli sviluppatori quanta memoria usano le loro creazioni.
Basandosi su questi quattro obiettivi, Google ha portato a compimento un lavoro all’apparenza davvero difficile. In particolare Burke si sofferma sull’ultimo punto, riguardo gli strumenti di misurazione:
Non abbiamo introdotto la funzione per gli utenti finali ma, se ci si reca nelle Opzioni sviluppatore su un dispositivo con Android KitKat, si nota la presenza di ProcStats (Statistiche sui processi). E’ un qualcosa che fornisce statistiche sui processi. Fondamentalmente monitora differenti applicazioni e processi nel sistema ed osserva quanto spesso sono attivi, e fornisce il quantitativo di RAM che utilizzano in background. Calcola una sorta di punteggio in base al peso, e fa una classifica in base a quanto pesante è un processo o un’app, così puoi vedere quali applicazioni consumano molta RAM per molto tempo. Abbiamo trovato questa funzionalità molto utile sotto il punto di vista delle applicazioni Google. Spesso abbiamo costatato che alcune delle nostre applicazioni non erano efficienti in termini di memoria. I processi erano anche attivi in background 24 ore su 24, così abbiamo introdotto questo interessante tool per analizzarle e snellirle.
Il risultato di questo lavoro sarà un sistema snello, in grado di girare in maniera fluida anche sui dispositivi meno performanti, senza però rinunciare a nessuna delle funzionalità by Google, e mantenendo un look grafico accattivante. Gli utenti dei dispositivi Nexus, ma non solo, noteranno in maniera tangibile le differenze di prestazioni passando da Jelly Bean a KitKat.
Ovviamente, la strada da percorrere per avere un sistema completamente ottimizzato è ancora lunga, ma siamo già ad un buon punto di partenza. Non mancheranno ulteriori miglioramenti nelle prossime versioni di Android, ma intanto godiamoci questa.