什么是Freeline?
Freeline是蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源。
稳定性方面:完善的基线对齐,进程级别异常隔离机制。
性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class及dex,resources层面作了相应缓存策略,做到真正增量开发,另外引入并优化buck的部分加速组件dx,DexMerger,资源编译方面,深入改造了Aapt资源编译流程,当资源发生改变时候,秒级完成增量包编译,其中增量包仅含最小的变更集合(10Kb~数百Kb内),后期也被运用到线上进行资源/代码动态替换。相比目前instant-run,buck,layoutcast等方案快数倍速度。
怎么使用呢?
在project的build.gradle中配置
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
在app的build.gradle中配置
apply plugin: 'com.antfortune.freeline'
dependencies {
在使用前需要使用者先安装python的环境
实测python3会出现问题,最好配置python2.X的环境
配置环境后在当前目录命令行中输入以下代码下载配置文件
gradlew initFreeline
再在plugin中安装Freeline的插件
FreelinePlugin再在命令行中执行下列语句
python freeline.py
即可配置完成
不输入代码也可以直接点击插件自动编译
PK环节
1.500M工程
147S Freeline 104S Gradle2.150M工程
38.2S Freeline 18.813S Gradle粗糙的结论
最后我选择gradle。。。。
可能是我的工程还不够大
推荐前期用gradle 后期项目大了gradle编译太慢 用freeline试试吧
最后,本文就到这里啦祝大家编译愉快!
关于作者
CodeMonkey(大四在校学生,正在校外实习中)
QQ:568261070
GitHub:https://github.com/MrCodeSniper
网友评论