Что означает "multiDexEnabled true" в Android gradle. Почему мы это используем? Каков эффект, если он включен?
Что означает "multiDexEnabled true"?
Ответ 1
Файлы приложения Android (APK) содержат исполняемые файлы байт-кода в форма файлов Dalvik Executable (DEX), которые содержат скомпилированные код, используемый для запуска вашего приложения. Пределы спецификации Дейвика Дейвика общее количество методов, на которые можно ссылаться в одном DEX файл до 65 536, включая методы Android, методы библиотеки, и методы в вашем собственном коде. Чтобы преодолеть этот предел, вы настраиваете процесс создания приложений для создания более одного DEX файл, известный как многоэлементная конфигурация.
Вы должны прочитать официальную строку руководства о создании приложений с использованием более 64 тыс. методов
Ответ 2
Приложения Android по умолчанию имеют поддержку SingleDex, которая ограничивает ваше приложение только 65536 методами (ссылками). Поэтому multidexEnabled = true просто означает, что теперь вы можете написать в своем приложении более 65536 методов (ссылок).
Но я никогда не буду писать 65536 методов!
Когда мы говорим количество методов, это означает, что
методы, написанные вами + методы Android Framework + сторонние библиотеки (например, Volley, Retrofit, Facebook SDK и т.д.).
Я прочитал где-то в посте, что
App Compat 24.2.1 содержит 16,5 тыс. Методов
Сервисы Google Play GCM 9.6.1 содержат методы по 16,7 тыс.
Так что, если вы только что написали простое приложение Hello world, в котором есть App Compat 24.2.1, то ваше приложение уже имеет 16.7k методов.
Как включить поддержку мультидекса
это зависит от minSdkVersion вашего приложения
Если minSdkVersion> = 21, вы можете включить его, написав multidexEnabled = true
если minSdkVersion <21, то вам придется включить библиотеку Multidex Compatibily в ваш gradle.
Подробнее о включении поддержки multidex
Преимущество multiDex
Multidex позволяет вашим приложениям иметь больше сторонних библиотек.
Подробнее о файлах .dex
Приложения Android скомпилированы в файл/файлы .dex, которые в свою очередь заархивированы в один файл .apk. Файлы .dex имеют байт-коды, которые используются виртуальной машиной Dalvik (DVM).
Вы можете прочитать больше о .dex и DVM
Ответ 3
Он позволяет создавать приложения с более чем 64k методами. Для получения дополнительной информации см. Здесь http://developer.android.com/intl/es/tools/building/multidex.html
Ответ 4
поддержка сторонней библиотеки multidex для вашего приложения
Если minSdkVersion> = 21, то вы можете включить его, написав multidexEnabled = true, если minSdkVersion <21, тогда вам придется включить библиотеку Multidex Compatibily в ваш gradle. Подробнее о включении поддержки multidex