Le système Android comprend-il JVM?


Je sais que le système Android comprend la machine virtuelle Dalvik (DVM) Mais je ne comprenais pas si le système Android incluait également la JVM Ou DVM est un remplacement pour JVM? Merci

Author: user1019872, 2015-02-23

2 answers

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ées dans .dex (Dalvik EXecutable) et .odex (exécutable Dalvik optimisé) fichier.

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 compilé, Dalvik le compile puis traduit ce code en son propre code. D'une certaine façon est un remplacement pour 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 Runtime Android, a remplacé Dalvik dans Android 5.0. ART utilise toujours les mêmes fichiers .dex, mais ils sont plutôt traduits en fichiers .elf (Format exécutable et liable). Ceci est un autre remplacement pour la JVM, car le code Java est compilé dans la JVM bytecode, puis traduit en bytecode DVM, puis traduit dans un fichier ELF et exécuté.

@Chris Thompson fait un excellent travail pour expliquer le bytecode DVM surComprendre le désassemblage du code Dalvik .

Sources: Wikipedia / Amis / Expériences

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

Mais je ne comprenais pas si le système Android incluait la JVM

Non.

Ou DVM est un remplacement pour JVM?

La machine virtuelle Dalvik sert à exécuter des applications Android compilées en bytecode Dalvik. La machine virtuelle Java sert à exécuter des applications Java compilées en bytecode Java. Si vous envisager un pour remplacer l'autre est à vous.

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