Android秒级编译之Freeline尝鲜记

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

最近看到不少有关Freeline的文章呀~今天终于决定要实践一下啦,过程当然要记录下来。

地址:https://github.com/alibaba/freeline

Github上面有中英文文档都有,介绍、原理说明以及使用步骤什么的都有写清楚,现在就按照文档来开始使用吧。

首先,配置build.gradle文件

Android秒级编译之Freeline尝鲜记_第1张图片
截图取自此开源项目,我懒,^_^

我的project下的build.gradle,截个图看看,我还当初还有引用butterknife

Android秒级编译之Freeline尝鲜记_第2张图片
Paste_Image.png

我的app下的build.gradle


Android秒级编译之Freeline尝鲜记_第3张图片
Paste_Image.png

命令行执行以下命令来下载 freeline 的 python 和二进制依赖

  • Windows[CMD]: gradlew initFreeline
  • Linux/Mac: ./gradlew initFreeline

对于国内的用户来说,如果你的下载的时候速度很慢,你也可以加上参数,执行gradlew initFreeline -Pmirror,这样就会从国内镜像地址来下载。

也可以使用参数-PfreelineVersion={your-specific-version}来下载特定版本的 freeline 依赖。

如果你的工程结构较为复杂,在第一次使用 freeline 编译的时候报错了的话,你可以添加一些 freeline 提供的配置项,来适配你的工程。具体可以看 Freeline DSL References。

我用的Windows,没办法,真买不起mac啊,还需努力提升自己,提高技术,努力赚钱才行呐,于是,我按了下cmd,按下gradlew initFreeline -Pmirror,得到这结果

Android秒级编译之Freeline尝鲜记_第4张图片
Paste_Image.png

咦,不对,突然又机制一把,找到AS中Terminal页面,继续输入gradlew initFreeline -Pmirror

Android秒级编译之Freeline尝鲜记_第5张图片
Paste_Image.png

然后一直打点点。应该就在下载了吧~


Android秒级编译之Freeline尝鲜记_第6张图片
Paste_Image.png

等待了二十分钟后,中途也一直在打印东西,点点加其他,最终出现这结果,下载还挺久哈!

Usage

Freeline 最快捷的使用方法就是直接安装 Android Studio 插件。

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

我没找到Preferences 可能是Setting的其他叫法吗~我点到File -> Settings -> Plugins ->Browse repositories,搜索下载安装

Android秒级编译之Freeline尝鲜记_第7张图片
Paste_Image.png

然后重启AS,出现了Run Freeline的按钮

Paste_Image.png
截图取自此开源项目

于是,我点击了一下蓝色按钮,旁边出现


Paste_Image.png

哈哈~我的Windows环境没有python,去下载一个

Python官网:https://www.python.org/

Android秒级编译之Freeline尝鲜记_第8张图片
Paste_Image.png
Android秒级编译之Freeline尝鲜记_第9张图片
Paste_Image.png

只是个环境,我选择了这个下载安装了,安装到F盘一个文件夹中,然后在系统的环境变量中的path加上python的安装路径。打开cmd,输入python。

Android秒级编译之Freeline尝鲜记_第10张图片
Paste_Image.png

应该可以哒!重启AS,再次点击蓝色按钮。

Android秒级编译之Freeline尝鲜记_第11张图片
Paste_Image.png

no why,不知道原因,在github的issues看到


Android秒级编译之Freeline尝鲜记_第12张图片
Paste_Image.png

好吧,重新去下载一个python2.7.x 吧~再尝试下。

Android秒级编译之Freeline尝鲜记_第13张图片
Paste_Image.png

好了,重启AS,点击蓝色按钮

Android秒级编译之Freeline尝鲜记_第14张图片
Paste_Image.png

Android秒级编译之Freeline尝鲜记_第15张图片
Paste_Image.png

打印了一堆东西,还有running time,编译是不是快了点啊,好像是吧,哈哈哈~总之尝鲜成功了。

后来发现Log中报Freeline没有初始化的错误,还需要在Applincation中的oncreate添加FreelineCore.init(this)

还有有时候项目中原来的简单封装ToastMaker跳不出来吐司,需要clean一下项目,就恢复了,也不知道什么问题,感觉这个东东问题多多的诶!

网上关于Freeline写的不错的文章,我也是看这篇文章来尝鲜的,O(∩_∩)O哈哈~:

http://yanhuili.github.io/2016/11/26/AndroidStudio%E2%80%94%E2%80%94Freeline%E6%8F%92%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8/

今天是周六诶~然而今天正常上班,公司统一调休了,这两周周六都上班,然后过年提前两天放假。

新的一年的第一篇文章,新的一年到来,好习惯不能放弃,坚持笔记,坚持写作,在潜移默化中,写作能力总会提高的吧还有健身,坚持下去,自律。新的一年,在空闲还想学点其他的生活新技能,还没决定要学什么,现在不想啦,过完年之后的事情啦新的一年,还要多看书,长长见识,去旅游,看看世界。新的一年,为自己加油↖(ω)↗

你可能感兴趣的:(Android秒级编译之Freeline尝鲜记)