Ciao @Lukone88.Android fa uso di una macchina virtuale come ambiente runtime per eseguire i file APK che costituiscono un’applicazione Android. Il vantaggio di utilizzare una macchina virtuale è duplice – in primo luogo, il codice di applicazione è isolato dal sistema operativo di base, in modo che se qualcosa dovesse andare storto, è contenuta in un ambiente isolato e non influenza il sistema operativo primario. E in secondo luogo, consente la compatibilità incrociata, cioè anche se l’applicazione è compilata su un’altra piattaforma (come un PC, come avviene di solito con lo sviluppo di applicazioni mobili), possono ancora essere eseguiti sulla piattaforma mobile utilizzando la macchina virtuale.
Dalvik è presente nell’OS Android fin dal principio nel 2007 e non è cambiato molto da allora, a parte il metodo di compilazione Just-In-Time (JIT), introdotto in Android 2.2 Froyo, che in sostanza compila in modo giusto le applicazioni che vengono lanciate o quando l’utente fornisce le istruzioni necessarie.
ART, o Android RunTime è una nuova macchina virtuale sperimentale che Google ha introdotto con Android 4.4 KitKat come opzione per gli sviluppatori (con Dalvik ancora impostato come predefinito per ora). La differenza principale tra ART e Dalvik è l’approccio alla compilazione che entrambi impiegano – ART si avvale di un nuovo Ahead-Of-Time (AOT) concetto contrario al JIT di Dalvik, che raccoglie le applicazioni prima che esse vengano lanciate. Ciò significa che per la prima installazione ci vorrà più tempo, e le applicazioni occuperanno più spazio nella memoria interna, ma allo stesso tempo, dal momento che l’applicazione sarà completamente compilata appena installata, i tempi di lancio saranno molto più veloci. Allo stesso modo, dal momento che la compilazione avviene solo una volta al momento dell’installazione, il tasso di utilizzo del processore è più basso, il che si traduce in una migliore durata della batteria e delle prestazioni complessive.