martedì 12 novembre 2013
Android Runtime ovvero Art, il nuovo compilatore Android
L'avvento di Android 4.4 nome in codice KitKat ha portato svariate, seppur poco visibili, novità.
Una di queste è l'introduzione del compilatore "Art". Art, acronimo di "Android Runtime", andrà a sostituire la ben "rodata" "Dalvik Virtual Machine" che, da molti anni ormai, muove l'intero sistema operativo. Il compilatore, per un sistema operativo strutturato come Android, è una delle parti più importanti del sistema stesso.
Ricordo infatti che il linguaggio di programmazione scelto per lo sviluppo di Android è Java che rispetto ai tradizionali linguaggi di programmazione addotta una filosofia diversa per la compilazione ed esecuzione del codice. Mentre per linguaggi come "C" o "C++" il codice scritto dal programmatore viene compilato direttamente in linguaggio macchina, Java aggiunge uno "step" ulteriore ovvero non compila (traduce) il codice in linguaggio macchina, ma in un codice detto "bytecode". Il "bytecode" è una via di mezzo tra il linguaggio ad Alto livello (ovvero più vicino all'uomo come appunto "C", "Java"...) e il linguaggio macchina (ovvero composto da "0" e "1"). Questo "linguaggio intermedio" poi viene tradotto "al volo" in linguaggio macchina al momento dell'esecuzione di un'app. Quali sono i vantaggi di questa filosofia? Il vantaggio principale è senza dubbio la compatibilità con una vasta gamma di dispositivi. Poichè ogni processore ha il proprio "linguaggio macchina", il codice macchina compilato per un dato processore non sarebbe compatibile con un altro. Traducendo invece il linguaggio in "bytecode", ovvero ad una via di mezzo, risolviamo questo problema perchè basterà dotare ogni dispositivo di un "traduttore" che trasformi il linguaggio intermedio al linguaggio macchina adatto al processore di quel dato dispositivo ed è qui che entra in gioco la "Dalvik Virtual Machine". La "Dalvik" infatti, si occupa della traduzione in linguaggio macchina del codice "bytecode". Come si può intuire più essa sarà rapida a fare questa traduzione più l'app si aprirà e verrà eseguita velocemente. Art invece si comporta in maniera differente: invece di "aspettare" l'esecuzione di un'applicazione per tradurre il "bytecode", lo traduce al momento dell'installazione, quindi prima. I vantaggi sono molti infatti l'esecuzione dell'app sarà più rapida, non dovendo essere più compilato il linguaggio "al volo" esso infatti è "già pronto". La batteria durerà di più, infatti il processore non dovrà sprecare cicli di calcolo per compilare ogni volta l'app per eseguirla: questo come si può capire provoca lo spreco di risorse. Ci sono dei piccoli svantaggi che si possono sicuramente sopportare tanti sono i benefici: il primo è che il linguaggio "macchina" occupa più spazio rispetto al linguaggio bytecode, per cui avremo delle app leggermente più ingombranti; il secondo invece è che il processo d' installazione durerà un po' di più infatti l'app dovrà essere compilata interamente in linguaggio macchina e non fermarsi "ad una via di mezzo".
Ovviamente nello scrivere questo articolo ho semplificato molto e i più esperti avranno sicuramente da ridire.
Art in Android 4.4 non è ancora il compilatore "di base", esso infatti può essere attivato in sostituzione della "Dalvik" solo accendendo alle "opzioni per sviluppatori". La sua introduzione in fase di test tuttavia fa capire quanto Google stia lavorando per rendere il suo sistema sempre più veloce ed Efficiente.
Iscriviti a:
Commenti sul post (Atom)

Nessun commento:
Posta un commento