Android studio 什么';它的意思是:增量、预ExLibraries、jumboMode、内部索引选项?

Android studio 什么';它的意思是:增量、预ExLibraries、jumboMode、内部索引选项?,android-studio,gradle,android-gradle-plugin,build.gradle,Android Studio,Gradle,Android Gradle Plugin,Build.gradle,在build.gradle中,我们可以添加该参数 android { dexOptions { incremental preDexLibraries jumboMode javaMaxHeapSize } } 但是文档太少了 布尔增量 是否为dx启用增量模式。这有很多限制,可能不起作用。小心使用 布尔巨模 在dx中启用巨型模式(--强制巨型) 布尔预紧库 是否预索引库。这可以改进增量构建,但干净的构建可能会

在build.gradle中,我们可以添加该参数

android {
    dexOptions {
        incremental 
        preDexLibraries
        jumboMode 
        javaMaxHeapSize
    }
}
但是文档太少了

布尔增量

是否为dx启用增量模式。这有很多限制,可能不起作用。小心使用

布尔巨模

在dx中启用巨型模式(--强制巨型)

布尔预紧库

是否预索引库。这可以改进增量构建,但干净的构建可能会更慢

1) 增量中有哪些限制

2) 什么是巨型模式


3) 什么是pre-dex库?

首先让我们看看什么是dex文件。在纯java中,当您编译java代码时,它将被编译成
.class
文件,而在android中,您的java代码将被编译成
.dex
文件。(两者都是字节码,但不同)

incremental
:这意味着Gradle将使用以前的dex文件并将新的更改附加到它们(而不是每次都重新构建它们)

您的第一个问题的答案:例如,其中一个限制是您不能将其与multidex*一起使用(尽管此限制已解决-对于sdk版本,multidex APK可以通过仅重建受影响的dex文件进行21+增量构建)

-注意:您不必再担心这个限制,因为自Gradle版本2.1.0以来,增量选项默认为true

multidex
:此选项意味着将java代码编译成多个dex文件,除非您的代码方法数量超过单个dex文件的最大限制(64k方法),否则不需要此选项

jumboMode
第二个问题的答案)):对dex文件中的字符串计数也有限制,启用此选项将扩展dex文件中的字符串计数(自Gradle 2.1.0以来,此选项为真,因此您也不必担心)


preDexLibraries
第三个问题的答案):它从库中构建dex文件,以便可以在增量构建中使用(而不是每次为库构建dex文件)。因此,在干净构建时使用此项会使所有操作都变慢。

总结起来,可能的重复:对于Gradle 2.1.0或更高版本,不需要设置任何这些参数来加快构建速度。对于multidex和predexLibraries,这一点不正确。这两种说法都不正确。每个想要作为默认添加到gradle的特性都会首先作为孵化特性添加(意味着您可以使用它们,但它们不稳定,可能会有问题)。但在一些版本之后,它会脱离孵化状态,并获得默认值。multidex没有问题,因为它的含义是明确的