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

Что такое: инкрементные, preDexLibraries, jumboMode, внутри dexOptions?

внутри build.gradle мы можем добавить, что params

android {
    dexOptions {
        incremental 
        preDexLibraries
        jumboMode 
        javaMaxHeapSize
    }
}

но документация слишком низкая

http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html#com.android.build.gradle.internal.dsl.DexOptions

boolean incremental

Включить инкрементный режим для dx. Это имеет множество ограничений и может не работать. Используйте осторожно.

boolean jumboMode

Включить jumbo-режим в dx (-force-jumbo).

boolean preDexLibraries

Использовать ли библиотеки pre-dex. Это может улучшить инкрементные сборки, но чистые сборки могут быть медленнее.

1), какие ограничения находятся в инкрементальном?

2) что такое режим jumbo?

3) что такое библиотеки перед декомпрессией?

4b9b3361

Ответ 1

прежде всего, давайте посмотрим, что такое dex файл. в чистой java, когда вы скомпилируете Java-код, он будет скомпилирован в файл .class, в то время как в android ваш Java-код будет скомпилирован в файл .dex. (оба являются байт-кодами, но разными)

incremental: это означает, что Gradle будет использовать предыдущий файл dex и добавляет к ним новые изменения (не создавая их снова каждый раз).

ответ вашего первого Q: например. одно из ограничений заключалось в том, что вы не могли использовать его вместе с multidex * (хотя это ограничение было решено - для версий sdk 21+ инкрементные сборки возможны для apache multidex путем восстановления только затронутых файлов dex)

-note: вам больше не нужно беспокоиться об этих ограничениях, потому что по умолчанию опция is true по умолчанию, поскольку Gradle версия 2.1.0

multidex: этот параметр означает компиляцию java-кода в несколько файлов dex, которые вам не нужны, если ваши методы кода не превышают максимальное ограничение для одного файла dex (методы 64k)

jumboMode (ответ вашего второго Q): есть также ограничение на количество строк в файле dex, позволяющее этой опции расширять количество строк в файле dex (эта опция истинна так как Gradle 2.1.0, поэтому вам также не придется об этом беспокоиться)

preDexLibraries (ответ третьего Q): он создает файл dex из библиотек, поэтому его можно использовать в инкрементных сборках (не создавая файлы dex каждый время для библиотек). поэтому использование этого элемента, когда чистая сборка делает все немного медленнее.