AndroidStudio Gradle vs Freeline

什么是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的插件

AndroidStudio Gradle vs Freeline_第1张图片
FreelinePlugin

再在命令行中执行下列语句

python freeline.py  

即可配置完成
不输入代码也可以直接点击插件自动编译


PK环节

1.500M工程

AndroidStudio Gradle vs Freeline_第2张图片
147S Freeline
104S Gradle

2.150M工程

AndroidStudio Gradle vs Freeline_第3张图片
38.2S Freeline
18.813S Gradle

粗糙的结论

最后我选择gradle。。。。
可能是我的工程还不够大
推荐前期用gradle 后期项目大了gradle编译太慢 用freeline试试吧
最后,本文就到这里啦祝大家编译愉快!


关于作者

CodeMonkey(大四在校学生,正在校外实习中)
QQ:568261070
GitHub:https://github.com/MrCodeSniper

你可能感兴趣的:(AndroidStudio Gradle vs Freeline)