提升Android Studio编译速度的几种方案

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情

场景

随着项目代码的增多,在windows下使用Android Studio编译的速度也越来越慢,修改一点代码然后编译一次甚至需要几分钟的时间,这对于我们码农来说实在无法忍受。
这里介绍一些在实践中验证的比较有效的在windows下提升Android Studio编译速度的方法。

解决方案

一、更改配置文件

1、在C:\Users\用户名\.gradle\目录下,新建gradle.properties文件,文件内容:
#JVM运行时允许分配的最大堆内存
org.gradle.jvmargs=-Xmx4608M
# 编译时使用守护进程
org.gradle.daemon=true
#使用并行编译
org.gradle.parallel=true
#启用新的孵化模式
org.gradle.configureondemand=true
2、使用本地的gradle文件,并且关闭gradle在线更新模式
3、具体的module中设置gradle文件
dexOptions {
	//是否支持大工程模式
        jumboMode true
	//最大堆内存
        javaMaxHeapSize "4g"
	//使用增量模式构建
        incremental true
	//预编译
      	preDexLibraries = true
	//线程数
      	threadCount = 8
    }

二、使用Freeline编译

frreline可谓是解决提升编译速度的究极方案,它利用热补丁原理达到快速编译的效果,往往一个原来需要几分钟编译的工程,现在可能只需要不到10秒钟。
freeline的官方地址: https://github.com/alibaba/freeline
具体的使用说明这里就不再赘述了,可以参考官网的使用手册接入。
现在我们看下freeline使用前后的对比。
使用前:
使用后:
可以见得,使用freeline的时候,第一次编译项目会很慢,这里用了430秒。
但是只要这个项目被freeline编译过后,以后再使用freeline的话,就能体验到freeline飞一般的速度了。
按上图所示,增加了一行代码,只用了11.1秒就编译完成。
 
同样,对资源文件的编译,freeline也是得心应手:

三、模块化

将常用的功能封装为aar或jar包,以jar或jar包形式引入项目,避免每次编译的时候都要重新编译一遍java文件。

四、组件化

工程内部按照组件化方式构造起来,需要什么功能的组件,就compile这个组件,自由搭配,而不是像以往那样这个工程全部编译。
组件化这块的内容,后续我会专门写文章介绍。

五、更换操作系统

有条件的话,可以购买Mac电脑开发,那个速度绝对是杠杠滴。
如果手头紧的话,可以考虑装个黑苹果,或者用linux系统开发,编译速度也是比windows要快很多。

六、其它方案

1、减少带有flavors标签的compile;
比如:
productFlavors {
    develop {
        resValue "string", "app_name", "测试版"
    }
    product {
        resValue "string", "app_name", "正式版"
    }
}
developCompile project(path: ':module-A', configuration: 'developRelease')
productCompile project(path: ':module-A', configuration: 'productRelease')
2、implementation能够提升编译速度
网上有传言说AS3.0以后的implementation能够提升编译速度,但是我没有实际去测试过,
因为3.0配4.x的gradle有一些bug。
如果大家想体验的话,可以按照以下方式来配置AS,这样就可以使用implementation了。
android3.0+gradle4.0+com.android.tools.build:gradle3.0
3、屏蔽某些task
比如Test这样的task,可能是我们不需要用到的,但是gradle在编译的时候却执行了,我们可以将这样的task屏蔽掉,也能节省一部分的时间。
在项目的gradle里面,进行如下的配置:


4、使用固态硬盘,提升电脑硬件。
 

总结

1、 freeline是大招,是解决AS编译慢的终结方案,大家能用上都尽快用上;
2、其它方案能够配上的最好也都配上。
比如像gradle的offline模式,android studio打开项目的时候每次都去检查更新,有时候网络不好的情况下,需要很长时间,导致AS假死状态。参考:https://www.jianshu.com/p/200d55b4d40a
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值