You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio 3.1构建耗时过长,请求优化建议

Android Studio 构建速度优化方案(适配你的环境)

嘿,结合你的开发环境和构建分析数据,我整理了结构化的信息和实用的优化方案,帮你加快Android Studio的构建速度:

我的开发环境

  • 开发工具:Android Studio 3.1
  • 操作系统:Windows 10
  • 硬件配置:Core i5 处理器、16GB 内存

构建任务耗时分析

以下是当前构建任务的耗时数据(按耗时从高到低排序):

  • :app:transformClassesWithDesugarForDevelopmentQuickbuild: 35.137s
  • :app:compileDevelopmentQuickbuildJavaWithJavac: 31.917s
  • :app:transformClassesWithDexBuilderForDevelopmentQuickbuild: 28.579s
  • :app:compileDevelopmentQuickbuildKotlin: 20.145s
  • :app:transformClassesWithMultidexlistForDevelopmentQuickbuild: 16.873s
  • :app:mergeDevelopmentQuickbuildResources: 16.363s
  • :app:transformReso...: 任务未完整显示

针对性优化建议

1. 优化 Desugar 与 Dex 相关任务(耗时Top3)

这几个任务是当前构建的核心瓶颈,优先做优化:

  • 启用D8编译器:Android Studio 3.1支持用D8替代传统DX工具,能大幅减少desugar和dex构建时间。在项目根目录的gradle.properties中添加:
    android.enableD8=true
    android.enableD8.desugar=true
    
  • 开启增量Dex构建:进一步提升Dex构建的增量效率,同样在gradle.properties中添加:
    android.enableIncrementalDexing=true
    

2. 加快 Java/Kotlin 编译速度

  • 启用增量编译:让Kotlin和Java只编译修改过的代码块,避免全量编译浪费时间,在gradle.properties中添加:
    kotlin.incremental=true
    android.enableBuildCache=true
    
  • 适配升级Kotlin版本:Android Studio 3.1建议搭配1.2.x系列的稳定Kotlin版本,较旧版本可能存在编译性能短板,你可以在项目级build.gradle中更新版本号。

3. 优化资源合并任务

  • 清理冗余资源:用Android Studio自带的Analyze > Inspect Code工具,扫描并移除未使用的布局、图片、字符串等资源,减少资源合并的工作量。
  • 启用资源增量合并:在gradle.properties中添加以下配置,提升资源处理效率:
    android.useNewApkCreator=true
    

通用性能优化

  • 开启Gradle构建缓存:让Gradle复用之前的构建结果,节省重复构建时间,在gradle.properties中添加:
    org.gradle.caching=true
    
  • 调整Gradle堆内存:你的16GB内存足够分配更大的堆空间给Gradle,在gradle.properties中修改:
    org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    
  • 关闭Debug构建的Lint检查:Debug阶段不需要严格的Lint校验,在app模块的build.gradle中配置:
    android {
        buildTypes {
            debug {
                lintOptions {
                    checkReleaseBuilds false
                    abortOnError false
                }
            }
        }
    }
    

内容的提问来源于stack exchange,提问作者Mangesh Kadam

火山引擎 最新活动