使用秒级编译方案-Freeline

原创 2017年01月07日 15:37:34

转载请注明出处
http://blog.csdn.net/guodongandroid/article/details/54174776
本文来自【孫小逗的博客】

使用秒级编译方案-Freeline

一、关于Freeline

Freeline是蚂蚁金服旗下开发的一个基于动态替换的编译方案,运用到项目后可以极大的提高项目编译速度。相比较现在的instant-run,buck,layoutcast等方案快数倍。
GitHub地址
官网

二、集成Freeline

这里只说Windows下的集成,Linux/Mac 请自行百度/Google。(屌丝没有MacBook)

1、集成前的准备

你需要提前安装 Python 2.7+(Freeline 暂时还不支持 Python 3+),安装完之后需要重启一下 Android Studio。
Python 2.7.13下载地址

2、如何集成

提供了两种方式集成Freeline,最简单的方法是通过 Android Studio 的插件来集成(实际上是对命令行的方式做了封装,提供自动化的解决方案),另一种则是手工通过修改配置与执行命令的方式来集成。
建议使用方法二,自己先捣鼓一遍,最后使用插件。

方法一:Android Studio 插件

在最新版本的 Freeline 插件中,提供了自动化一键接入的方式,不需要像以前一样手动修改 build.gradle 配置文件了.

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

Freeline

直接点击 Run Freeline 的按钮,就可以享受Freeline带来的开发效率的提升啦(会先需要一个较为耗时的全量编译过程)。

第一次使用的时候,插件会自动检测是否安装了 Freeline,如果没有安装的话会弹出提示,按照提示点击“确定”,插件就会自动为你修改配置文件,并自动安装 Freeline 的依赖文件。

方法二:命令行方式

配置 project-level 的 build.gradle,加入 freeline-gradle 的依赖:

classpath 'com.antfortune.freeline:gradle:x.x.x'

这里写图片描述

然后,在你的主 module 的 build.gradle 中,应用 freeline 插件的依赖:

apply plugin: 'com.antfortune.freeline'

这里写图片描述

最后,在命令行执行以下命令来下载 freeline 的 python 和二进制依赖。

Windows[CMD]: gradlew initFreeline

注意!注意!注意!

  • 在CMD下执行命令需要CD到项目根目录,在AS下的Terminal可以直接执行。
  • 对于国内的同学,如果你在下载的时候速度很慢,你也可以加上参数,执行 gradlew initFreeline -Pmirror,这样就会从国内镜像地址来下载。(推荐使用)
  • 在执行的过程中,freeline可能会下载一些东西,有时候因为网络的样子会下载很慢,比如这样子的:

这里写图片描述

这时候可以提前下载对应版本的gradle,然后将下载好的zip文件放入这个目录下,freeline会自动解压:

这里写图片描述

再次执行 gradlew initFreeline -Pmirror,Freeline会再下载相应的依赖包,一般不会出错了,直到出现这步时,耐心等待一会儿。这个时候已经开始了对Freeline的初始化。

这里写图片描述

初始化成功:

这里写图片描述

接下来就是第一次的全量编译,耐心等待编译完成(只有第一次全量编译时间较长,以后的增量编译都是10s之内的):

执行一条 python freeline.py 命令即可。

这里写图片描述

这是第一次编译的时间是40秒。然后我修改了一个数值进行第二次编译。

这里写图片描述

0.7秒即编译完成,不到一眨眼的功夫,484想说“卧槽”。

注意又来了!

  • freeline的limitation,目前还不支持连接多台设备。目前方案参考 Issues233
  • 在自己的Application类中加入以下代码:

    FreelineCore.init(this);

  • 有时增量编译完成后并不会自动launch activity,但这时已经把更新部署到设备上了。

  • 有其他问题多去看看Issues

这里写图片描述

至此,Freeline已经成功的集成到了我们的项目中,如果觉得每次执行命令行比较繁琐,可以根据方法一在AS中安装Freeline的插件。

版权声明:本文为博主原创文章,未经博主允许不得转载。

AndroidStudio 快速集成 秒级编译工具Freeline

Freeline (Android平台上的秒级编译平台)快速集成
  • u013132758
  • u013132758
  • 2016年12月01日 15:09
  • 1362

Android秒级编译方案-FreeLine

Freeline 是什么?Freeline 是一款 Android 平台上的秒级编译方案,能够显著地提高 Android 工程的编译速度为什么使用FreeLine随着Android app 工程越来越...
  • dbs1215
  • dbs1215
  • 2017年03月20日 22:57
  • 170

秒级编译工具freeline

Download 配置project-level的build.gradle,加入freeline-gradle的依赖: buildscript { repositories { ...
  • kelinyan
  • kelinyan
  • 2016年11月15日 10:51
  • 139

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

Android 秒级编译方案-Freeline安装使用什么是Freeline?Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几...
  • tc_xingdechen
  • tc_xingdechen
  • 2016年12月08日 01:13
  • 540

Android秒级编译方案-Freeline集成和使用过程中的一些问题和解决方案

一、Freeline介绍和集成方法 二、集成问题 三、注意事项 四、使用问题
  • Urmytch
  • Urmytch
  • 2017年05月17日 18:00
  • 234

FreeLine实现Android的秒级编译

一、使用步骤 1.安装plugin: 安装完后AS上就有一个freeline的编译按钮了。 2.配置Project以及Module的gradle bui...
  • cocochenqiuyue
  • cocochenqiuyue
  • 2017年03月02日 11:39
  • 221

Freeline - Android平台上的秒级编译方案

摘要:Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似F...
  • LABLENET
  • LABLENET
  • 2016年10月17日 15:36
  • 632

Freeline - Android平台上的秒级编译方案

FreeLine是什么?Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对...
  • shineflowers
  • shineflowers
  • 2017年03月06日 19:56
  • 1287

Freeline - Android平台上的秒级编译方案

来源 github https://github.com/alibaba/freeline官网 https://www.freelinebuild.com/插件下载页面 https://plug...
  • qqduxingzhe
  • qqduxingzhe
  • 2017年05月27日 11:16
  • 273

阿里巴巴旗下 Android 平台上的秒级编译方案 - Freeline

下面这段引自:Freeline 在 Github 的原理介绍Freeline 是 Android 平台上的秒级编译方案,Instant Run 的替代品,也可以从 Freeline 官方主页来获取更多...
  • litengit
  • litengit
  • 2017年03月06日 17:16
  • 575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用秒级编译方案-Freeline
举报原因:
原因补充:

(最多只允许输入30个字)