FreeLine是什么?
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class及dex,resources层面作了相应缓存策略,做到真正增量开发,另外引入并优化buck的部分加速组件dx,DexMerger,资源编译方面,深入改造了Aapt资源编译流程,当资源发生改变时候,秒级完成增量包编译,其中增量包仅含最小的变更集合(10Kb~数百Kb内),后期也被运用到线上进行资源/代码动态替换。相比目前instant-run,buck,layoutcast等方案快数倍速度。
项目地址:https://github.com/alibaba/freeline
使用教程
1.安装Python环境
从python官网下载Python 2.7.13版本(注意,一定要下载这个版本,具体原因下面会提到),安装成功并配置好环境变量。
2.配置
project build.gradle
module build.gradle
最后,执行以下命令来下载Freeline的Python的二进制依赖
- Windows[CMD]: gradlew initFreeline
- Linux/Mac: ./gradlew initFreeline
插件
File → Settings... → Plugins → Browse repositories... → Freeline
该插件暂时不支持Python3.0以后的版本,否则会出现下面的错误:
3.代码植入
在Application中添加下面的代码:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
之后,点击工具栏上的那个蓝色按钮,就可以运行项目了。
首次编译时间较长,因要生成python相关文件,后期编译时间只需要几秒钟…
参考资料:
Freeline - Android平台上的秒级编译方案 —— https://yq.aliyun.com/articles/59122