Недавно я обнаружил новую функциональность MultiDex от Android для работы с приложениями, имеющими более 65 000 ссылок. См: https://developer.android.com/tools/building/multidex.htmlAndroid MultiDex - вопросы о внутренних работах
Может кто-то помочь мне понять следующие вопросы:
1) Как Gradle построить плагин определить, что поместить в основной файл Dex (classes.dex) против вторичных тны файлов? На основе документа есть определенные вещи, которые должны быть в первичных dex, но это не дает никаких примеров. Требуются ли все действия в основном файле dex?
Цитируется Текст:
Есть сложные требования относительно того, какие классы необходимы в первичный файл Dex при выполнении во время выполнения Dalvik. Обновления оснастки для Android поддерживают требования Android, но возможно, что в других включенных библиотеках есть дополнительная зависимость , включая использование интроспекции или вызов Java методов из собственного кода. Некоторые библиотеки могут быть недоступны для использования до тех пор, пока средства сборки multidex не будут обновлены, чтобы вы могли указать классы , которые должны быть включены в основной файл dex.
2) При создании только для Android API уровня 21 (Android L) и выше в плагине Build Gradle существует другое поведение. Он говорит, что он намного быстрее, потому что он «Создает каждый модуль приложения (включая зависимости) в виде отдельных файлов dex. Это обычно называют предварительным расширением». Что такое определение модуля в Android? Является ли это библиотекой Java, библиотекой Android и Android-приложениями, упомянутой здесь: http://developer.android.com/sdk/installing/studio-build.html#projectModules? Удаленные или локальные двоичные зависимости (например, Jars) считаются отдельными модулями и, таким образом, попадают в другой файл dex или они включаются в модуль в зависимости от них?
Отличный ответ. Всегда ли выполняются действия в первичной директории на основе задачи «MultiDexComponents»? – AnDev123
Еще один вопрос: эта функция пытается получить количество методов чуть ниже предела, поэтому методы во вторичных файлах dex как можно меньше? Aka Умеет ли он в отношении количества методов, которые он удаляет? – AnDev123
В нем хранятся * только * классы, указанные в списке хранения в первом банке/dex. В моем файле сохранения я вижу, что это, по крайней мере, все действия, службы, BackupAgents и ваше приложение, а также аннотации. – thoutbeckers