Android开发经验谈Android开发纪实Android开发

提升Gradle编译速度

2019-05-07  本文已影响21人  撸代码的皇太极

Gradle是Android项目的全新构建系统,使用AndroidStudio工具开发项目的童鞋应该很清楚了,Gradle是基于JVM的构建工具的下一个革命性步骤。它借鉴了已建立的工具(如Ant和Maven)的经验教训,并将他们最好的想法提升到了一个新的水平。但随着Android项目变得越来越复杂,模块越来越多,代码量越来越大的时候,构建性能就显得尤为重要。如果你不进行优化,那么你会发现你平时编译的时间都快和编码的时间相当了!这是一个很恐怖的致命BUG!
说到提升编译性能,大家可能会想到Instant Run,Instant Run固然是好,但是一旦你的项目使用到了MultiDex就悲剧了,各种ClassLoader报错。。。这个时候第三方框架比如FreeLine就派上用场了,不过本文主角并不是FreeLine,而是如何优化Gradle配置来提升编译速度。好吧直接看gradle.properties文件配置:

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# org.gradle.jvmargs=-Xmx1536m
# 指定用于守护程序进程的JVM参数。
# 该设置对于调整内存设置特别有用。
# 默认值:-Xmx10248m -XX:MaxPermSize = 256m
org.gradle.jvmargs = -Xmx2048m -XX:MaxPermSize = 512m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects

# 设置为true时,Gradle守护程序将运行构建。
org.gradle.daemon = true
# 配置后,Gradle将以孵化并行模式运行。
# 此选项仅应与分离的项目一起使用。更多细节,访问
# http ://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# 启用新的孵化模式,使Gradle在配置项目时具有选择性。
# 仅配置相关项目,从而加快大型多项目的构建速度。
# http ://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand = true
allprojects {
    //跳过构建时link检查
    tasks.whenTaskAdded { task ->
        if (task.name.equals("lint")) {
            task.enabled = false
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读