Freeline介绍以及 AS中接入步骤

Freeline介绍

今天向大家介绍一款Android平台的增量编译工具:Freeline。Freeline是由阿里巴巴蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。

Freeline代码开源在Github: 

https://github.com/alibaba/freeline

Freeline在云栖社区的原理说明: 

https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

Freeline内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class及dex,resources层面作了相应缓存策略,做到真正增量开发,另外引入并优化buck的部分加速组件dx,DexMerger,资源编译方面,深入改造了Aapt资源编译流程,当资源发生改变时候,秒级完成增量包编译,其中增量包仅含最小的变更集合(10Kb~数百Kb内),后期也被运用到线上进行资源/代码动态替换。

Freeline的特性:

  • 支持调试
  • 系统最低支持到api level 9
  • 支持标准的多模块Gradle工程的增量构建
  • 并发执行增量编译任务
  • 进程级别异常隔离机制
  • 支持so动态更新
  • 支持resource.arsc缓存
  • 支持retrolambda
  • 支持DataBinding
  • 支持各类主流注解库
  • 支持Windows,Linux,Mac平台

当然每个事物都有自己的不足,现在已经Freeline的一些不足:

  • 第一次增量资源编译的时候可能会有点慢
  • 不支持删除带id的资源,否则可能导致aapt编译出错
  • 暂不支持抽象类的增量编译
  • 不支持开启 Jack 编译
  • 不支持 Kotlin/Groovy/Scala

Freeline接入AS工程步骤

1.在项目level的build.gradle中添加插件依赖

buildscript {
    repositories {
        jcenter()
    }
    dependencies {

       
classpath'com.antfortune.freeline:gradle:0.8.6'
   
}
}

2.在项目主module的build.gradle中应用freeline插件的依赖

apply plugin: 'com.antfortune.freeline'

 

dependencies {
    debugCompile 'com.antfortune.freeline:runtime:0.8.6'
    releaseCompile 'com.antfortune.freeline:runtime-no-op:0.8.6'
    testCompile 'com.antfortune.freeline:runtime-no-op:0.8.6'
}

3.在自定义的Application中添加Freeline的接入代码


public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FreelineCore.init(this);
    }
}

 

4.安装Python、并配置系统环境变量 

因为Freeline是用python写的,下面的的所有操作,包括编译等都要依赖python,所以需要下载python。

1). 下载python

Freeline目前只支持2.x版本的,这里为大家推荐2.7.12版: 

https://www.python.org/downloads/release/python-2712/

2).配置环境变量。

5. 在项目的根目录下载安装Freeline

在命令行内输入:gradlew.bat  initFreeline  -Pmirror

 Freeline介绍以及 AS中接入步骤_第1张图片

Freeline下载完成后工程目录下会多出下图中几个freelinefreeline_core目录以及freeline.pyfreeline_project_description.json文件

 Freeline介绍以及 AS中接入步骤_第2张图片

6.使用Freeline编译运行项目

在命令行内输入:python freeline.py

Freeline介绍以及 AS中接入步骤_第3张图片

常用命令帮助

python freeline.py -f —— cleanBuild 强制执行一次 clean build 

python freeline.py -d —— 调试 打开debug模式 

python freeline.py -h —— 帮助 显示帮助信息并退出 

python freeline.py -v —— 版本 显示版本信息 

python freeline.py -w —— 等待 让应用程序等待 debugger 

python freeline.py -a —— 全部 在所有工程上强制执行clean build 并执行-f全量编译 

python freeline.py -c —— 清空 清空缓存目录和工作空间 

python freeline.py -i —— 初始化 对工程进行进行freeline初始化配置

Android Studio Freeline插件

一般我们开发的时候,想要运行项目时就点一下绿色的Run按钮,几乎不用命令运行项目,所以FreeLine也有这样简单的操作方式,我们需要为AndroidStudio安装一个插件:

Setting → Plugins → 输入freeline → 点击Browserepositories → 点击Install重启AndroidStudio

 Freeline介绍以及 AS中接入步骤_第4张图片

重启Android Studio后就会出现下图中这样一个按钮,你以后就可以通过这个按钮快速编译项目了。

 Freeline介绍以及 AS中接入步骤_第5张图片

 

 

 

 

 

 

 

 

 


你可能感兴趣的:(Android)