Il sistema Android include JVM?


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

Author: user1019872, 2015-02-23

2 answers

I programmi sono comunemente scritti in Java e compilati in bytecode per la Java Virtual machine, che viene poi tradotto in bytecode Dalvik e memorizzato in .dex (ESeguibile Dalvik) e .odex (Ottimizzato Dalvik eseguibile) file.

In breve, i programmi vengono compilati in bytecode JVM, che viene poi 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 sostituzione per la JVM.

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

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

@Chris Thompson fa un ottimo lavoro spiegando DVM bytecode su Comprensione smontaggio del codice Dalvik .

Fonti: Wikipedia / Amici / Esperienze

 13
Author: phase, 2017-05-23 11:55:07

Ma non ho capito se il sistema Android include JVM

N.

O DVM è un sostituto per JVM?

La macchina virtuale Dalvik è per l'esecuzione di applicazioni Android compilate in bytecode Dalvik. La macchina virtuale Java è per l'esecuzione di applicazioni Java compilate in bytecode Java. Se si considera uno di essere un sostituto per l'altro dipende da voi.

 4
Author: CommonsWare, 2015-02-22 21:08:09