1. Freeline是什么?
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案.
特点:
1) 真增量,构建过程快且增量包体积小,极大提升更改代码部署到手机速度,较Android studio2.0及 LayoutCast快3~5倍
2)跨平台Linux,mac,windows
3)全版本覆盖 2.x ~ 6.x版本均支持
4)部署流程简化,更改代码后,构建过程中,与手机建立了tcp长连接,一行命令即可完成增量部署,毋需到各自子bundle所在的目录构建完成后再进入portal/launcher进行打包再安装到手机的过程
5)事务支持,在开发过程引入的异常不会破坏工作空间
6)无缝支持mPass,解决了类似maven各个节点需merge合并等与常规开发流程不一致的问题
7)进程级别异常隔离,开发体验持续稳定
2. 谁在用?
目前 Freeline 在阿里内部稳定支撑蚂蚁聚宝,高德地图等Android技术团队日常开发,兼容mPaas/gradle架构
开源地址:
https://github.com/alibaba/freeline
3. 传统Android打包流程
单线程沿着流水式的任务从上到下进行打包构建,其中,aapt会执行2次,第一次是生成R.java,参与javac编译,第二次是对res里面的资源文件进行编译,最后APKBuilder会把DEX文件与编译好的资源文件及DEX文件进行打包成APK,签名并安装至手机。整个流程下来,没有任何缓存,没有并发,也没有增量,每次构建都是一个全新的过程,所以每次构建时间也比较恒定,代码量,资源量越多,构建时间越慢
4. 目前业界增量解决方案的Layoutcast,buck,以及google的instant run方案,综上几种方案的优缺点;正因为上面几个方案各自有各自的优缺点,Freeline融合各自优点而生,核心技术思想源自于Buck,LayoutCast,并在此基础上进行一步改良,争取把增量思想做到极致。
特点:多任务并发,多级缓存,增量范围最小化,懒加载,基于长链接无安装式运行期动态替换,基线对齐触发机制,可调试
5. Freeline已经分别在API 17,19,22,23的Android模拟器、Android 6.0 Nexus 6P以及Android 4.4锤子手机上经过测试。如果想要充分体验Freeline增量编译的速度的话,最好使用Android 5.0+的设备。下面介绍下集成步骤
1)配置project-level的build.gradle,加入freeline-gradle的依赖:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.antfortune.freeline:gradle:0.8.1'
}
}
2)然后在主module的build.gradle中,应用freeline插件的依赖:
apply plugin: 'com.antfortune.freeline'
android {
freeline {
hack true
autoDependency false
productFlavor 'test' // 渠道名
}
}
dependencies {
debugCompile 'com.antfortune.freeline:runtime:0.8.1'
releaseCompile 'com.antfortune.freeline:runtime-no-op:0.8.1'
testCompile 'com.antfortune.freeline:runtime-no-op:0.8.1'
}
3)在应用程序的入口处添加如下代码(建议在Application的onCreate()方法里面调用)
FreelineCore.init(this);
4)初始化项目,命令如下:
gradlew initFreeline -Pmirror
在进行第四步时,可能会遇到始终下载不成功的问题,这个时候,可以很笨的直接跳过此步来到了第五步,第五步插件安装后,运行,会提示你运行一行命令,有可能就很快的解决此步下载不成功的问题(可能这种经验是例外,如果有任何问题,可以留言给我,我看到会尽量配合帮助解决;))
5)安装Android Studio插件Freeline。
在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装。安装好后,如下图:
直接点击 Run Freeline的按钮,就可以享受Freeline带来的开发效率的提升啦(当然,你可能会先需要一个较为耗时的全量编译过程)
分享到:
相关推荐
freeline-v0.8.7工具包,用于AS快速编译,FreeLine build只需要5秒
freeline_core,android_tools自2015年QQ空间Team放出安卓App热补丁动态修复技术介绍之后,各种热修复技术层出不穷,越来越多的项目也开始尝试这种新技术,这个是阿里最新的技术分享
Freeline:来自阿里巴巴的Android快速构建和部署工具。它缓存可重用的类文件和资源指标,它能够增量构建Android应用程序,并可选热插拔更新部署到你的设备。
freeline插件,版本1.7.0。阿里出品,值得您的信赖!让编译更快,腾出更多的时间喝咖啡!
修改过后的freeline依赖的gradle工程,具体参照博客 http://blog.csdn.net/rzleilei/article/details/52402484
Freeline亲测完美跑起来,博客地址https://mp.csdn.net/postedit/82388297
详见文章: http://blog.csdn.net/rzleilei/article/details/52402484
Freeline是适用于Android的超快速构建工具,是Instant Run的替代工具。 通过缓存可重用的类文件和资源索引,它可以增量构建Android应用程序,并可以选择通过热交换将更新部署到您的设备。 有关更多信息,请参见。 ...
freeline-v0.8.8.zip freeline-v0.8.8.zip freeline-v0.8.8.zip
Freeline极速编译方案的开源之路.pptx
Freeline极速编译方案的开源之路.pdf
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,相比目前instant-run,buck,layoutcast等方案快数倍速度。
蚂蚁聚宝Android秒级编译——Freeline APT 数据分析 漏洞挖掘 安全建设 安全开发
Freeline Freeline is a super fast build tool for Android and an alternative to Instant Run. Caching reusable class files and resource indices, it enables incremental building Android apps, and ...
.tu_freeline_list li{text-indent:10px;font-size:0;height:30px;line-height:30px;overflow:hidden;zoom:1;}.tu_freeline_list li span{float:left;height:30px;overflow:hidden;width:155px;font-size:12px;}.tu_...
首届阿里开源峰会 分享文档 AliSQ ARouter BeeHive Freeline -Large-Scale Stream Processing in Alibaba
java安卓辅助源码 AndroidStudioPlugins Android Studio 常用插件及浅释 也可以看我的博客: 插件可以来这个仓库查找: ...freeline AS插件 Json to POJO(plan-old Java Object) —— GSON, Logan Square, Jackson