在一个android项目 build.gradle 文件中,我已经通过了这一行

dexOptions{
    javaMaxHeapSize "4g"
}

我想知道这个 javaMaxHeapSize 的确切目的,以及 4g 是什么意思。我还能提供什么其他值?

最佳答案

answer above中所述,这只是为dex操作指定Java虚拟机(JVM)的最大内存分配池的选项。与向Java提供-xmx参数相同。由于它是here的源代码,因此它的 setter 看起来像:

if (theJavaMaxHeapSize.matches("\\d+[kKmMgGtT]?")) {
    javaMaxHeapSize = theJavaMaxHeapSize
} else {
    throw new IllegalArgumentException(
            "Invalid max heap size DexOption. See `man java` for valid -Xmx arguments.")
}

因此,您可以看到,接受的值应该与\d+[kKmMgGtT]?模式匹配,因此,不,甚至引用了man java来了解如何设置-xmx。您可以阅读the man page here。它说,这个标志:



在您的示例中,4g是4 GB,这是dex操作的最大堆大小。

10-08 08:46