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

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即可,不过这个地方需要注意下,所有选项都要全部选上如图即可,此处借用廖雪峰老师的图

安装选项

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

这里写图片描述

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


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

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

gradlew initFreeline

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

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

这里写图片描述

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

这里写图片描述

可将工程根目录下的有关freeline的东西全部删除,再手动下载freeline的文件拷贝到工程根目录下
freeline依赖下载地址:https://github.com/alibaba/freeline/releases,下载对应的版本即可
这里写图片描述

然后再次执行gradlew initFreeline命令,即可完成安装


6.具体使用

命令行执行:

python freeline.py

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

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

这里写图片描述


其他注意事项:

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

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

这里写图片描述

至此,祝使用愉快!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容