Система 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. Считаете ли вы один заменой другого, решать только вам.