Cos'è la Dalvik? - Android dalla A alla Z

Emanuele Cisotti
Emanuele Cisotti Tech Master
Cos'è la Dalvik? - Android dalla A alla Z

La Dalvik è una macchina virtuale impiegata da Android e sviluppata da Dan Bornstein, che deve il nome ad un omonimo villaggio islandese. Si tratta in pratica del software che fa girare le app Android, pertanto è strettamente correlata alle performance del sistema stesso.

LEGGI ANCHE: Cos'è la ART? | Cosa sono odex e deodex?

Al contrario della JVM (Java Virtual Machine), la Dalvik utilizza una struttura a registri anziché a stack, tanto che i file java compatibili con la JVM vengono convertiti in file .dex (Dalvik EXecutable) e .odex (Optimized Dalvik EXecutable), compatibili con la Dalvik, allo scopo di ottimizzare la gestione della memoria e delle risorse, particolarmente importanti per dispositivi mobili. Tramite un tool chiamato dx, i file Java (.class) vengono convertiti in .dex, ed anche il bytecode Java viene convertito in un set di istruzioni compatibile con la Dalvik VM.

Dalla versione Android 2.2 Froyo, viene utilizzato un compilatore JIT (just in time) che interpreta le app al momento della loro esecuzione, laddove ART (il possibile successore della Dalvik) utilizza un compilatore AOT (ahead of time), che le compila al momento dell'installazione.

Al momento non ci sono reali prove che ART sia effettivamente più performante, laddove invece tempi di installazione e spazio di storage occupato sono maggiori nelle app che utilizzino ART.