2015-02-22 23 views
8

So che il sistema Android include la macchina virtuale Dalvik (DVM) Ma non ho capito se il sistema Android include anche JVM Oppure DVM è un sostituto di JVM? GrazieIl sistema Android include JVM?

+0

Dalvik è il runtime Java. –

risposta

2

Ma non ho capito se il sistema Android includono JVM

No.

O DVM è un sostituto per la JVM?

La macchina virtuale Dalvik è per l'esecuzione di applicazioni Android compilate in bytecode Dalvik. La Java virtual machine è per l'esecuzione di applicazioni Java compilate in bytecode Java. Che tu consideri che uno sia un sostituto dell'altro dipende da te.

9

programmi sono comunemente scritto in Java e compilato in bytecode per la macchina virtuale Java, che viene poi tradotto a Dalvik bytecode e immagazzinate nella .dex (Dalvik Executable) e .odex (Optimized Dalvik Executable) file.

In breve, i programmi sono compilati in bytecode JVM, che viene quindi interpretato in bytecode DVM. Invece di eseguire il codice Java compilato, Dalvik lo compila e quindi traduce quel codice nel proprio codice. In qualche modo è un sostituto della JVM.

Un ambiente di runtime alternativo denominato Android Runtime (ART) è stato incluso in Android 4.4 "KitKat" come anteprima tecnologica. ART sostituisce interamente Dalvik in Android 5.0 "Lollipop".

ART, Android Runtime, sostituito da Dalvik in Android 5.0. ART utilizza ancora gli stessi file .dex, ma vengono invece convertiti in file .elf (file eseguibile e collegabile). Questo è un altro sostituto della JVM, poiché il codice Java è compilato in bytecode JVM, quindi tradotto in bytecode DVM, quindi tradotto in un file ELF ed eseguito.

@Chris Thompson fa un ottimo lavoro spiegando il codice bytecode DVM su Understanding disassembly of Dalvik code.

Fonti: Wikipedia/amici/esperienze