Android 平台上的秒级编译方案 Freeline(蚂蚁聚宝团队开源)

一开始我是拒绝写这个文章的(官方都写好了,谁tm看你),不过在用的时候,遇到点小问题,记录下来。

文章使用Freeline的0.8.3版本


惯例粘贴一份介绍 如下

======================================================================================================

Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。
Freeline能够为Android开发者节省很多喝杯咖啡的时间 : )
Freeline Insights
Freeline将整个编译过程拆分成多个小模块,根据模块间的依赖关系并发进行编译任务。它可以对所有编译缓存文件做到充分地利用,真正地做到了“增量”编译。同时,它也提取了buck的部分组件(dx与DexMerger),来加速构建流程。Freeline会在app运行时启动一条独立进程来运行Socket Server以进行开发机与app的通信,同时也能确保即使在app出现crash之后,仍然能够使增量编译持续生效。
Freeline是通过multi-dex的方案来实现Java代码的增量更新的。与此同时,我们也专门对aapt工具做了深度优化,给出了独立的FreelineAapt资源打包工具用来生成增量的资源包以及加快资源包的打包速度。运行期的资源替换,Freeline中使用了Instant-Run的方案。除此之外,Freeline也支持运行期动态更新so文件。
Freeline会根据代码文件的变更情况,自动在全量编译与增量编译中进行切换。
实际上,Freeline可以在经过简单的改造之后,作为线上热修复方案,通过动态下发增量资源,来对应用进行修复或者资源替换。经过压缩后的增量资源通常都会在100kb以下,用户可以在移动网络的环境下直接接收到热补丁。蚂蚁聚宝已经基于Freeline打造了完整的热修复框架,应用于线上问题修复以及A/B Test。
Features
支持标准的多模块Gradle工程的增量构建
并发执行增量编译任务
进程级别异常隔离机制
支持so动态更新
支持resource.arsc缓存
支持retrolambda
支持DataBinding
支持各类主流注解库
支持Windows,Linux,Mac平台


Freeline已经分别在API 17,19,22,23的Android模拟器、Android 6.0 Nexus 6P以及Android 4.4锤子手机上经过测试。如果想要充分体验Freeline增量编译的速度的话,最好使用Android 5.0+的设备。

======================================================================================================


集成第一步


1.1、在你项目的build.gradle中添加

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:0.8.3'
    }
}

需要注意的是buildscript 本来应该就是存在的,把没有的copy进去就可以了


1.2、在你的主module的build.gradle

apply plugin: 'com.antfortune.freeline'



集成第二步,这里有个坑


是要先安装python(0.83的Freeline只支持2.7+的python,安装3.x+会报错)的,安装完配置环境(直接安装目录到path,搞完先重启)


貌似Freeline需要的python 和二进制依赖。这里官方给出

Windows[CMD]: gradlew initFreeline -Pmirror
Linux/Mac: ./gradlew initFreeline -Pmirror

之前没怎么用过gradlew ,傻乎乎的按下cmd写了gradlew initFreeline -Pmirror发现,提示不是命令,找资料,说是gradle的,搞了半天没找到这个东西,又去as中的命令行试了下,发现提示让我配置JAVA_HOME,配置后还是提示,应该是要重启,重启后再次运行gradlew initFreeline -Pmirror,然后就哒哒哒下载什么鬼的。



继承第三步

在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装

安装完出现个图标,点击就好了。


顺带贴上官方链接https://github.com/alibaba/freeline


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值