android - dexInProcess 。它有什么作用?

标签 android android-gradle-plugin

Google 建议的构建优化之一是为您的构建启用 dexInProcess(请参阅 here):

android {
    dexOptions {
        dexInProcess = true
    }
}

有人可以解释一下它的实际作用吗?试图搜索官方文档,但关于此功能的信息不多(可能是因为android plugin 2.0.0仍处于alpha阶段,因此未完全公开)

最佳答案

从最新的 AS 版本中,我想我对这个标志有了更好的理解。以前 DEX 步骤发生在一个单独的外部进程中。这个标志的想法是 DEX 步骤在与构建相同的进程中运行,这使得构建过程更快。

你应该注意的唯一重要的事情是,DEX 步骤真的很消耗内存(还记得我们之前设置的 dexOptions.javaMaxHeapSize "4g" 选项吗?),所以从现在开始 DEX 步骤在与构建相同的进程中运行,您需要确保为 JVM 分配了足够的内存。否则构建会显着变慢甚至抛出 OutOfMemoryException。

我建议通过更新 gradle.properties 中的 jvmargs 为构建过程提供 4 次演出,如下所示:

org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

关于android - dexInProcess 。它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068058/

相关文章:

android - 如何将多于一列绑定(bind)到 TextView

android - Gradle 构建扫描错误 : Event sink is closed

Android studio 错误 : java. util.zip.ZipException: zip 文件为空

android - 错误 :Unable to resolve dependency. ..无法解析项目

android - 在build.gradle中导出环境变量

java - 将 RxJava 添加到依赖项后无法构建项目

android - Apk 元信息警告

android - 在 RelativeLayout 中对齐两个 View 的中间

android - MediaStore.EXTRA_OUTPUT 在横向模式下始终包含 null

java - 如何使用工作后退按钮创建 Android 文件列表?