Что такое dex в Gradle

что такое dex в Gradle или в Android?

в Gradle, что означает dexoptions?

иногда мой проект не компилируется из-за некоторых dexerrors. Мне нужно активировать ProGuard для компиляции моего Android-приложения.

1 ответов


в стандартном мире java:

при компиляции стандартного кода java: компилятор производит *.файл класса. Файл * class содержит стандартный байт-код java, который может быть выполнен на стандартном JVM.

в мире Android:

это другое. Вы используете язык java для написания кода, но компилятор не создает *.файлы классов, он производит *.файл Декса. А *.dex файл содержит байт-код, который может быть выполнен на виртуальной машине Android (dalvik) и это не стандартная виртуальная машина Java.

чтобы быть ясным: файл dex в android эквивалентен классу в стандартной java.

так dexoptions это ш объект где некоторые параметры для настройки этого java-code-to-android-байт-код преобразования. Параметры, настроенные с помощью этого объекта :

  • targetAPILevel
  • режим force-jumbo (при включении он позволяет увеличить количество строк в файлах dex)

включить jumboMode :

android {
    dexOptions {
        jumboMode = true
    }
}