La Dalvik VM è caratterizzata da tre importanti obiettivi progettuali: - deve girare su dispositivi con poca memoria RAM e processori meno performanti; - non utilizza spazio di swap a causa della ridotta memoria disponibile; - deve girare su dispositivi dotati di scarsa capacità energetica. Il codice in formato .dex viene runnato in due modi diversi: la parte di codice più utilizzata (Hot Code) viene compilato Just-In-Time; il resto (Cold Code) viene interpretato. ART (Android RunTime), la nuova VM che sostituisce totalmente Dalvik a partire da Android 5.0, si basa sulla tecnologia AOT (Ahead-Of-Time), attraverso cui l’app viene interamente compilata in codice macchina nativo durante l’installazione sul device, e non durante l’esecuzione. Così facendo il codice compilato dell’applicazione è direttamente eseguibile, riducendo notevolmente i tempi di esecuzione rispetto al compilatore JIT usato in Dalvik, generando anche un certo risparmio energetico. Di contro aumenta il consumo di spazio sulla memoria sul dispositivo e il tempo di installazione dell’app.