web-dev-qa-db-fra.com

Est-ce que Android inclut la JVM?

Je sais Android comprend la machine virtuelle Dalvik (DVM) mais je ne comprenais pas si Android comprend également la JVM ou DVM est un remplacement de la JVM? Merci

23
user1019872

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

En bref, les programmes sont compilés en bytecode JVM, qui est ensuite interprété en bytecode DVM. Au lieu d'exécuter le code Java Java compilé, Dalvik le compile puis traduit ce code en son propre code. Il remplace en quelque sorte la JVM.

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

ART, le Android Runtime, a remplacé Dalvik dans Android 5.0. ART utilise toujours le même .dex fichiers, mais ils sont plutôt traduits en .elf (Fichiers exécutables et formatables). Il s'agit d'un autre remplacement de la JVM, car Java est compilé en bytecode JVM, puis traduit en bytecode DVM, puis traduit en fichier ELF et exécuté.

@Chris Thompson explique très bien le bytecode DVM sur Comprendre le démontage du code Dalvik .

Sources: Wikipedia /Amis/Expériences

24
phase

Mais je n'ai pas compris si Android inclut JVM

Non.

Ou DVM remplace JVM?

La machine virtuelle Dalvik sert à exécuter les applications Android compilées en bytecode Dalvik. La machine virtuelle Java sert à exécuter les applications Java compilé en Java bytecode. Que vous considériez l'un comme un remplacement pour l'autre est à vous.

11
CommonsWare