В чем разница между .class и .dex файлами?

Конечно, файлы .dex для Dalvik VM Android и .class файлы для JVM. Но мне интересно, имеют ли они похожие макеты (Constant Pool, Fields, Methods, Attributes, …)? Байт-код отличается от других, но существуют ли альтернативные коды операций Dalvik для JVM?

Solutions Collecting From Web of "В чем разница между .class и .dex файлами?"

В то время как в файле jar Java есть много файлов классов, каждый файл APK имеет только один файл classes.dex, как показано ниже. Согласно Google, формат APK отличается от формата файла классов по соображениям производительности и безопасности.

Введите описание изображения здесь

Существует формат файла Dex и спецификация формата файла класса из соответствующей компании.

Эти 2 файла совершенно разные.

Формат исполнения Dalvik – это код, исполняемый VM. Dalvik VM не может выполнять Java-байт-код, он должен быть скомпилирован в dex, потому что он использует альтернативный набор команд.

Прочтите статью wiki .