Android 秒级编译方案-Freeline安装使用


什么是Freeline?

Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeline能够为Android开发者节省很多喝杯咖啡的时间 : )

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。

如何使用Freeline?


1.在project-level的build.gradle中添加以下代码

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



2.在主module的build.gradle中添加以下代码

apply plugin: 'com.antfortune.freeline'android {    ...    freeline {        hack true        productFlavor "dev"    }}dependencies {    ...    compile 'com.antfortune.freeline:runtime:0.8.3'}



3.在app的Application的onCreate方法中初始化Freeline,加入一行代码

FreelineCore.init(this);



4.下载安装python,由于Freeline在python3.x版本不适用,所以现在还是用python2.7最好

python2.7下载地址:
https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi

安装时一路next即可,不过这个地方需要注意下,所有选项都要全部选上如图即可,此处借用廖雪峰老师的图

Android 秒级编译方案-Freeline安装使用_第1张图片 安装选项

然后验证是否安装成功,打开cmd命令窗口,输入python,类似下图即成功

Android 秒级编译方案-Freeline安装使用_第2张图片 这里写图片描述

若出现“python不是外部或内部命令”的提示,则可能是没有python的安装目录添加到path,拷贝python的安装目录如:D:\python(这是我的路径,你的可能不一样)到环境变量path中,别忘了加;哦


5.下载Freeline相关所需插件,文件

打开cmd命令窗口进入工程文件根目录或者直接在android studio中打开Terminal控制台执行以下命令:

gradlew initFreeline

若速度慢,可使用在后面添加参数gradlew initFreeline -Pmirror

此处注意:
1.需要gradle-2.14.1及以上,为了方便最好使用本地gradle,如图

Android 秒级编译方案-Freeline安装使用_第3张图片 这里写图片描述

2.如果出现中途卡住不动的情况,如图

Android 秒级编译方案-Freeline安装使用_第4张图片 这里写图片描述
可将工程根目录下的有关freeline的东西全部删除,再手动下载freeline的文件拷贝到工程根目录下
freeline依赖下载地址: https://github.com/alibaba/freeline/releases,下载对应的版本即可
Android 秒级编译方案-Freeline安装使用_第5张图片 这里写图片描述
然后再次执行gradlew initFreeline命令,即可完成安装


6.具体使用

命令行执行:

python freeline.py

即可编译运行到设备上,首次运行可能很慢,后续代码更新就快的飞起啦,有时可能已经安装好了,但没有自动打开,手动打开下就好了

不过这样也是很麻烦,下载freeline的android studio插件更方便快捷,到as插件搜索freeline,安装,重启android studio,然后就会出现这样一个图标,以后编译运行直接点击这个就好了

这里写图片描述


其他注意事项:

1.如果你的as已经安装了Jrebel的话,先卸载掉,不然可能会出问题

2.把instant run所有选项都去掉,如图

Android 秒级编译方案-Freeline安装使用_第6张图片 这里写图片描述

至此,祝使用愉快!

更多相关文章

  1. Android中应用程序drawable图片资源占用内存的统计
  2. 有关android内存泄露的问题以及解决方案
  3. WebView加载图片闪与Android的硬件加速
  4. 【Android开发 .9图的使用】Android Studio中关于.9.png图片的使
  5. Android全埋点方案调研
  6. 说说在 Android 中如何压缩图片
  7. android 图片占用进程的内存算法
  8. Android Fresco图片加载库基础使用详解
  9. 【移动开发】Android中图片过大造成内存溢出,OOM(OutOfMemory)异常

随机推荐

  1. Android多分辨率适配-长度单位和转换计算
  2. 在BeagleBoard XM 开发板上运行Android
  3. 绗旇锛歓ygote鍜孲ystemServer杩涚▼鍚
  4. Android(安卓)解压zip文件(支持中文)
  5. Android(安卓)数据传输方式 WIFI 蓝牙 US
  6. Android系统架构图及简单的系统架构
  7. 内容提供器Content Providers
  8. Android(安卓)沉寖状态栏与透明状态栏
  9. [Android] SQLite数据库之增删改查基础操
  10. RecyclerView中ViewHolder重用机制理解(