dex
файл - это файл, который выполняется на виртуальной машине Dalvik.
Dalvik VM содержит несколько функций для оптимизации производительности, проверки и мониторинга, одна из которых - Исполняемая программа Dalvik (DEX).
Исходный код Java компилируется компилятором Java в файлы .class
.Затем инструмент dx
(dexer), входящий в состав Android SDK, обрабатывает файлы .class
в формате файлов DEX
, который содержит байт-код Dalvik.Инструмент dx
устраняет всю избыточную информацию, присутствующую в классах.В DEX
все классы приложения упакованы в один файл.В следующей таблице приводится сравнение размеров кода для jar-файлов JVM и файлов, обрабатываемых инструментом dex
.
В таблице сравниваются размеры кода для системных библиотек, приложений веб-браузера и приложения общего назначения (приложение будильника).Во всех случаях инструмент dex уменьшал размер кода более чем на 50%.
В стандартных средах Java каждый класс в коде Java приводит к одному файлу .class
.Это означает, что если файл исходного кода Java имеет один открытый класс и два анонимных класса, скажем, для обработки событий, то компилятор java создаст всего три .class
файла.
Шаг компиляции такой же наПлатформа Android, в результате чего получается несколько .class
файлов.Но после создания файлов .class
инструмент «dx» используется для преобразования всех файлов .class
в один файл .dex
или Dalvik Executable.Это файл .dex
, который выполняется на виртуальной машине Dalvik.Файл .dex
был оптимизирован для использования памяти, а дизайн в основном основан на обмене данными.