google建议的构建优化之一是为您的构建启用dexInProcess
(请参见here):
android {
dexOptions {
dexInProcess = true
}
}
有人能解释一下它到底是干什么的吗?试图通过官方文档进行搜索,但这项功能的内容并不多(可能是因为android plugin 2.0.0仍处于alpha阶段,所以还没有完全发布给公众)
最佳答案
从最新的版本开始,我想我对这个标志有了更好的理解。以前的dex步骤是在一个单独的外部进程中进行的。这个标志的思想是,dex步骤与您的构建运行在同一个进程中,这使得构建过程更快。
你唯一需要注意的是,dex步骤确实消耗内存(还记得我们以前设置的选项吗?),因此,既然现在dex步骤与构建运行在同一进程中,您需要确保为jvm分配了足够的内存。否则,构建将大大减慢速度,甚至抛出内存异常。
我建议通过更新dexOptions.javaMaxHeapSize "4g"
中的jvmargs
给构建过程4个gigs,如下所示:
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8