android-studio - dexOptions 中的 : incremental, preDexLibraries、jumboMode 的含义是什么?

标签 android-studio gradle android-gradle-plugin build.gradle

在 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 以来,增量选项默认为 true
multidex :此选项意味着将 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/

相关文章:

java - Gradle构建执行失败: "Could not add file to ZIP" on Raspbian OS

spring-boot - 如何在Gradle中使用Apache CXF + Spring Boot构建SOAP WS?

Android Studio 3.1 即时运行不工作

java - Android studio 从 2.1 更新到 2.3 后出现错误(无法启动)

java - Gradle 构建忽略 Jetbrains 注释

android - 库必须使用完全相同的版本规范(混合版本会导致运行时崩溃)。发现版本 28.0.0-alpha1、26.1.0

android-gradle-plugin - 安卓, Gradle 。如何启动具体的仪表测试方法?

android - 无法解析 : com. github.barteksc :android-pdf-viewer:2. 8.1

java - 从智能手机捕获指纹并保存到文件

cordova - Ionic_CordovaError : Could not find an installed version of Gradle either in Android Studio, 或在您的系统上安装 gradle 包装器