Подтвердить что ты не робот

Что означает "multiDexEnabled true"?

Что означает "multiDexEnabled true" в Android gradle. Почему мы это используем? Каков эффект, если он включен?

4b9b3361

Ответ 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

Ответ 4

поддержка сторонней библиотеки multidex для вашего приложения

Если minSdkVersion> = 21, то вы можете включить его, написав multidexEnabled = true, если minSdkVersion <21, тогда вам придется включить библиотеку Multidex Compatibily в ваш gradle. Подробнее о включении поддержки multidex