30 秒让你加速 Android Studio/Gradle 构建
已经使用 Android Studio 进行开发超过一年,随着项目的增大,依赖库的增多,构建
速度越来越慢,现在最慢要 6分钟才能 build 一个 release 的安装包,在网上查找资料,发
现可以通过一些配置可以加快速度,这里跟大家分享一下。
开启 gradle 单独的守护进程
在下面的目录下面创建 文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
并在文件中增加:
1. =true
同时修改项目下的 文件也可以优化:
1. # Project-wide Gradle settings.
2.
3. # IDE (. Android Studio) users:
4. # Settings specified in this file will override any Gradle settings
5. # configured through the IDE.
6.
7. # For more details on how to configure your build environment visit
8. #
9.
10. # The Gradle daemon aims to improve the startup and execution time of Gradle.
11. # When set to true the Gradle daemon is to run the build.
12. # TODO: disable daemon on CI, since builds should be clean and reliable on servers
13. =true
14.
15. # Specifies the JVM arguments used for the daemon process.
16. # The setting is particularly useful for tweaking memory settings.
17. # Default value: -Xmx10248m -XX:MaxPermSize=256m
18. =-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOf
MemoryError =UTF-8
19.
20. # When configured, Gradle will run in incubating parallel mode.
21. # This option should only be used with decoupled projects. More details, visit
22. #
ed_projects
23. =true
24.
25. # Enables new incubating mode that makes Gradle selective when configuring projects.
26. # Only relevant projects are configured which results in faster builds for large multi-proj
ects.
27. #
ation_on_demand
28. =true
同时上面的这些参数也可以配置到前面的用户目录下的 文件里,那
样就不是针对一个项目生效,而是针对所有项目生效。
上面的配置文件主要就是做,增大 gradle 运行的 java 虚拟机的大小,让 gradle 在编
译的时候使用独立进程,让 gradle 可以平行的运行。
修改 android studio 配置
在 android studio 的配置中,开启 offline 模式,以及修改配置。实际上的配置和上
面的一大段一样,主要是在这个地方配置的只会在 ide 构建的时候生效,命令行构建不会生
效。
命令行构建
基于上面的配置,命令行构建时在命令后面加上这个参数即可 --daemon --parallel
--offline。
引入依赖库时使用 aar
使用网上第三方的依赖库时尽量使用 aar,可以在
maven
githu 搜索。
自己的库模块也可以打包成 aar,关于这个可以参考 stormzhang 的文章
后记
经过这样一番折腾,我原来需要 4,5分钟才能构建完成的项目,现在只需要 30 秒左右
就可以构建完成了。当然了,如果你这样还是不可以的话,那么,你应该换电脑了,ssd 的
硬盘,更大的内存,必须的上了。
30秒让你加速Android Studio/Gradle构建