在 build.gradle 中,我们可以添加该参数
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
Whether to enable the incremental mode for dx. This has many limitations and may not work. Use carefully.
boolean jumboMode
Enable jumbo mode in dx (--force-jumbo).
boolean preDexLibraries
Whether to pre-dex libraries. This can improve incremental builds, but clean builds may be slower.
1) 哪些限制是增量的?
2)什么是巨型模式?
3) 什么是 pre-dex 库?
最佳答案
首先让我们看看 dex 文件是什么。在纯java中,当你编译java代码时,它会被编译成.class
文件,而在 android 中,您的 java 代码将被编译为 .dex
文件。 (两者都是字节码但不同)incremental
:这意味着 Gradle 将使用以前的 dex 文件并将新的更改附加到它们(不是每次都重新构建它们)。
第一个Q的答案 :例如限制之一是您不能将它与 multidex* 一起使用(尽管此限制已解决 - 对于 sdk 版本,通过仅重建受影响的 dex 文件,multidex apk 可以进行 21+ 增量构建)
-注意:您不再需要担心此限制,因为自 Gradle 版本 2.1.0 以来,增量选项默认为 truemultidex
:此选项意味着将 java 代码编译成多个 dex 文件,除非您的代码方法超过单个 dex 文件的最大限制(64k 方法),否则您不需要它jumboMode
( 你的第二个问题的答案 ): dex 文件中的字符串计数也有限制,启用此选项将扩展 dex 文件中的字符串计数(此选项自 Gradle 2.1.0 起为真,因此您也不必担心)preDexLibraries
( 第三个问题的答案 ):它从库中构建 dex 文件,因此它可以在 中使用增量构建 (不是每次都为库构建 dex 文件)。因此,在干净构建时使用此项目会使一切变慢。
关于android-studio - dexOptions 中的 : incremental, preDexLibraries、jumboMode 的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32890868/