giovedì 19 giugno 2014

Ciao Dalvik, ci mancherai


Era solo questione di ore, adesso è arrivata la decisione definitiva, anche se non ufficialmente: Dalvik, il runtime predefinito di Android, ci lascia e fa spazio ad ART, il nuovo runtime introdotto con Android 4.4 a novembre 2013.

La notizia non è ufficiale, nel senso che Google non ha rilasciato annunci, ma essendo AOSP totalmente libero ed aperto agli occhi di tutti, chiunque può vedere i cambiamenti in atto e quello che oggi ha creato più polverone è sicuramente questo relativo al cambiamento di runtime.
Eccoli i due commit "incriminati", il 98553 ed il 98618 dove spadroneggia, emblematico, il messaggio dei developer di Google:

Dalvik is dead, long live to Dalvik

Cosa implica questo? Sicuramente due aspetti fondamentali, uno tecnico, l'altro di usabilità di Android.
1. Mentre Dalvik compilava l'applicazione, creando file .dex (o .odex) eseguibili dalla macchina virtuale ad ogni avvio dell'applicazione, ART (Android RunTime) precompila al momento dell'installazione dell'app stessa, creando file eseguibili in bytecode (comprensibile dalla macchina).
I risvolti sono semplici da intuire: Dalvik richiede un uso intenso della CPU ad ogni avvio dell'applicazione per compilare l'app stessa, per poi rimuoverli quando viene killata (occupando meno spazio). ART, invece, sforza la CPU al momento dell'installazione e solo in quel momento (tant'è che le installazioni usando ART durano qualche secondo in più, a parità di specifiche tecniche), dopo di ché ad ogni avvio userà i file che ha già precompilato ed è per questo che le applicazioni necessitano di più spazio per l'installazione. Tradotto in termini di risparmio energetico, Dalvik sforza la CPU in più riprese, consumando maggiore energia, mentre ART la sforza una volta e mai più per quell'applicazione, consumando di fatto meno energia, ma più spazio (problema minore, visto che i limiti dello spazio sono facilmente valicabili dall'ammodernamento delle tecnologie relative alle SD).

2. Il secondo punto, più operativo e più da modders, riguarda la compatibilità con Xposed. Xposed è un hack creata dal developer rovo89 che permette di apportare delle modifiche al framework di Android, ottenendo vantaggi che variano dal controllo del layout, ad impostazioni aggiuntive, passando per rimozione o aggiunge di features e controllo di impostazioni tecniche del kernel, gamma di colori e quant'altro.
Xposed è disponibile e funzionante solo su runtime Dalvik, cosa che ha posto gli utenti ad un bivio: controllo del framework e Dalvik o risparmio batteria e velocità con ART?
In molti hanno deciso di optare per il nuovo runtime introdotto con Android 4.4 (compreso il sottoscritto), ma in tanti, tantissimi sono rimasti fedeli a Dalvik.
Adesso, con la nuova release di Android (Lollipop o Lime Pie?) Dalvik verrà eliminato e questa marea di utenti fedeli al prodotto di rovo89 resteranno "appiedati". 

Da fonti non ufficiali (parafrasi di voci di corridoio) sono venuto a sapere che Xposed non viene aggiornato da dicembre e che da allora il developer non ha toccato nulla nel codice, né ha lavorato per l'adattamento ad ART, cosa che mi ha lasciato basito e stupido negativamente.
Sempre dalla stessa fonte (che comunque è molto affidabile, una delle mie migliori) sono venuto a sapere che, a seguito dei due commit di AOSP, rovo89 si è messo all'opera, pressato da questa novità da Google e sarebbe già pronta non ufficialmente una preview release non pubblica di Xposed compatibile con ART.

La domanda viene spontanea: non poteva pensarci prima? 

Comunque, non essendo un developer, non mi permetto di porre questa arrogante e presuntuosa domanda (l'ho già fatto?), considerando anche che lui non ci guadagna a sviluppare Xposed e tanto meno non è tenuto a farlo.

Voi come avete accolto questa notizia? (parlo da solo, lo so).