本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!
Instant Run为我们提供了增量更新的方式,支持 gradle2.0和Android4.0以上版本,让构建项目变的快速,同时由于multiDex出现,增量更新也变的简单,但现实状况是Studio编译依然卡卡。
Facebook的Buck是不错的,但它只支持Linux开发机;而Alibaba 开源的Freeline却可以在Windows机器上使用,根据依赖关系充分利用缓 存最少编译,并开启SocketServer保证crash同时也可以进行编译,最终实现全量编译和增量编译同时进程,提高2-3倍的编译速度。
注意事项
1、只能使用2.2以上的gradle版本和python2.7及以下版本,配置好环境变量
2、使用jcenter编译而非mavenCenter,因为某些gradle后者没有
3、此文件里的gradle版本需要更换,csdn限制只能传80M以内的文件,大家只好到官网下载,地址:gradle3.3
4、
主项目的build.gradle加入如下内容:
buildscript { repositories { jcenter() } dependencies { classpath 'com.antfortune.freeline:gradle:0.8.5' } }
apply plugin: 'com.antfortune.freeline'
dependencies {
compile 'com.antfortune.freeline:gradle:0.8.5'
}
目前最高版本是0.8.5
5、配置完,在Android Studio的Terminal里执行如下命令,代表从国内镜像下载,要快的多。
gradlew initFreeline -Pmirror
其他特色Features
- 支持标准的多模块 Gradle 工程的增量构建
- 并发执行增量编译任务
- 进程级别异常隔离机制
- 支持 so 动态更新
- 支持 resource.arsc 缓存
- 支持 retrolambda
- 支持 DataBinding
- 支持各类主流注解库
- 支持 Windows,Linux,Mac 平台
以下列表为 Freeline 支持的热更新情况:
Java | drawable, layout, etc. | res/values | native so | |
---|---|---|---|---|
add | √ | √ | √ | √ |
change | √ | √ | √ | √ |
remove | √ | √ | x | - |
Freeline 已经分别在 API 17,19,22,23 的 Android 模拟器、Android 6.0 Nexus 6P 以及 Android 4.4 锤子手机上经过测试。如果想要充分体验 Freeline 增量编译的速度的话,最好使用 Android 5.0+ 的设备。
限制Limitations
- 第一次增量资源编译的时候可能会有点慢
- 不支持删除带 id 的资源,否则可能导致 aapt 编译出错
- 暂不支持抽象类的增量编译
- 不支持开启 Jack 编译
- 不支持 Kotlin/Groovy/Scala
官方地址:https://github.com/alibaba/freeline/
另外项目打包工具Jenkins也值得研究一下:http://blog.csdn.net/mabeijianxi/article/details/52680283