Le système Android inclut-il la machine virtuelle Java?

Je sais que le système Android inclut la machine virtuelle Dalvik (DVM), mais je ne comprenais pas si le système Android incluait la machine virtuelle Java également. Ou DVM remplace-t-elle la machine virtuelle Java? Merci

Les programmes sont généralement écrits en Java et compilés en bytecode pour la machine virtuelle Java, qui est ensuite traduite en bytecode Dalvik et stockée dans des fichiers .dex (Dalvik EXecutable) et .odex (Optimized Dalvik Executable).

En bref, les programmes sont compilés dans le bytecode de la JVM, qui est ensuite interprété en un bytecode de DVM. Au lieu d’exécuter le code Java compilé, Dalvik le comstack puis le traduit en son propre code. C’est en quelque sorte un remplacement pour la JVM.

Un environnement d’exécution alternatif appelé Android Runtime (ART) était inclus dans Android 4.4 “KitKat” en tant qu’aperçu technologique. ART remplace Dalvik entièrement dans Android 5.0 “Lollipop”.

ART, le runtime Android, a remplacé Dalvik dans Android 5.0. ART utilise toujours les mêmes fichiers .dex , mais ils sont traduits en .elf (format exécutable et .elf lié). Ceci est un autre remplacement pour la machine virtuelle Java, car le code Java est compilé en bytecode JVM, puis traduit en bytecode DVM, puis traduit en un fichier ELF et exécuté.

@Chris Thompson fait un excellent travail en expliquant le bytecode DVM sur Comprendre le désassemblage du code Dalvik .

Sources: Wikipedia / Amis / Expériences

Mais je ne comprenais pas si le système Android incluait la machine virtuelle Java

Non.

Ou DVM est un remplacement pour JVM?

La machine virtuelle Dalvik est destinée à l’exécution d’applications Android compilées dans le bytecode de Dalvik. La machine virtuelle Java sert à exécuter des applications Java compilées en bytecode Java. Que vous considériez l’un comme un substitut de l’autre est à vous.