Система Android включает в себя JVM?

Я знаю, что система Android включает в себя виртуальную машину Dalvik (DVM), но я не понимаю, включает ли система Android также JVM Или DVM является заменой для JVM? Спасибо

2 ответа

Программы обычно пишутся на Java и компилируются в байт-код для виртуальной машины Java, который затем преобразуется в байт-код Dalvik и сохраняется в файлах.dex (Dalvik EXecutable) и.odex (Optimized Dalvik EXecutable).

Вкратце, программы компилируются в байт-код JVM, который затем интерпретируется в байт-код DVM. Вместо запуска скомпилированного кода Java, Dalvik компилирует его и затем переводит этот код в свой собственный код. Это в некотором роде замена JVM.

Альтернативная среда выполнения под названием Android Runtime (ART) была включена в Android 4.4 "KitKat" в качестве предварительной версии технологии. ART полностью заменяет Dalvik в Android 5.0 "Леденец".

ART, Android Runtime, заменил Dalvik в Android 5.0. ART по-прежнему использует то же самое .dex файлы, но вместо этого они переводятся в .elf(Исполняемый и связываемый формат) файлов. Это еще одна замена JVM, поскольку код Java компилируется в байт-код JVM, затем переводится в байт-код DVM, затем переводится в файл ELF и выполняется.

@Chris Thompson отлично объясняет байт-код DVM, разбираясь в разборке кода Dalvik.

Источники: Википедия / Друзья / Опыт

Но я не понял, включает ли система Android JVM

Нет.

Или DVM это замена для JVM?

Виртуальная машина Dalvik предназначена для запуска приложений Android, скомпилированных в байт-код Dalvik. Виртуальная машина Java предназначена для выполнения приложений Java, скомпилированных в байт-код Java. Считаете ли вы один заменой другого, решать только вам.

Другие вопросы по тегам