Как я могу использовать Android dexOptions?

В чем смысл dexOptions.incremental и т.д. Любое тело может объяснить их мне.

dex options

android {
    dexOptions {
        incremental false
        preDexLibraries = false
        jumboMode = false
        javaMaxHeapSize "2048M"
    }
}
This affects all tasks using dex.

Ответ 1

boolean incremental

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

String javaMaxHeapSize

Устанавливает значение -JXmx * при вызове dx. Формат должен соответствовать шаблону 1024M.

boolean jumboMode

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

boolean preDexLibraries

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

Их можно найти здесь:
http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html

Ответ 2

установите incremental в true.

Это экспериментальная функция, которая по умолчанию отключена. Однако вы можете включить его. Я лично не заметил никаких изменений в скорости (если это влияет на скорость).

Дополнительное объяснение можно найти там fooobar.com/questions/61103/....

Ответ 3

Пример:

dexOptions {
    preDexLibraries = false
    incremental true
    javaMaxHeapSize "12g"
}

afterEvaluate {
    tasks.matching {
      it.name.startsWith('dex')
    }.each { dx ->
      if (dx.additionalParameters == null) {
          dx.additionalParameters = ['--multi-dex']
      } else {
          dx.additionalParameters += '--multi-dex'
      }
    }
}