venerdì 17 febbraio 2012

Dalvik

Ripreso e sintetizzato da Wikipedia.

Immagine ripresa da www.learncomputer.com/what-is-dalvik 

Le applicazioni Android girano all'interno di una macchina virtuale denominata Dalvik che fa parte integrante del sistema operativo Android. I programmi sono di fatto compilati solo come bytecode (differente da quello di Java) e vengono convertiti dal formato .class di Java al formato .dex di Dalvik quando vengono installati sul telefono. Per questo motivo non sono supportate le librerie grafiche AWT e Swing di Java.

Di fatto quindi

  • Android ha un sintassi Java
  • Effettua una prima compilazione in bytecode Java
  • Il codice che effettivamente gira nella macchina virtuale (non Java) e' Dalvik e non Java


In alcuni casi puo' accadere che in fase di compilazione si generi l'errore
Conversion to Dalvik format failed: Unable to execute dex: null
In pratica non e' stata effettuata la conversione in .dex
Alla mia esperienza un Clean sul progetto risolve il problema mentre per altre persone e' necessario aumentare la memoria di Eclipse con un add -Xmx1024m (per i dettagli link)