Android 秒级编译 Freeline-小白的自述

我们知道 Android 的编译很慢,尤其是项目大点的时候,自己的电脑再有点垃圾的话,那编译速度太耽误时间了啊,这个FreeLine工具极大的降低了我们的开发效率,而今天给大家介绍另外一个强大的工具 – Freeline,绝对秒级编译:

Freeline是什么?

          Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class及dex,resources层面作了相应缓存策略,做到真正增量开发,另外引入并优化buck的部分加速组件dx,DexMerger,资源编译方面,深入改造了Aapt资源编译流程,当资源发生改变时候,秒级完成增量包编译,其中增量包仅含最小的变更集合(10Kb~数百Kb内),后期也被运用到线上进行资源/代码动态替换。相比目前instant-run,buck,layoutcast等方案快数倍速度。

       知道这个工具是哪家公司出的,还有是什么东西就行了,现在开始进入主题:

 1:安装Python

在使用Freeline的前提下是需要Python的,如果自己电脑上没有安装的话,那就自己安装吧,可以把这一步省略掉,在这里我就讲一下怎么安装和配置Python:

第一步下载(废话不下载怎么用)用Freeline的话,Python的版本不能是3.0以上的会出现问题的,Python在百度上都可以下的

第二步配置Python,需要在安装目录导入到环境变量,比如默认安装的是 C:/Python27 ,将其导入到path中。

最终效果,就是打开cmd,然后输入 python 命令


 这就可以配置成功了。

2配置studio:

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

 //1. 在项目级别的 gradle 文件里添加如下 classpath 
    dependencies {
        ...省略...
        classpath 'com.antfortune.freeline:gradle:0.8.6"
'
        }

然后,在你的主 module 的 build.gradle 中,一般也就是你 app 目录下的 build.gradle 文件,应用 freeline 插件的依赖,记得点击 Sync 按钮进行同步下载。

 //2. 在application 的 gradle 文件里添加
    apply plugin: 'com.android.application'
    apply plugin: 'com.antfortune.freeline'

    android {

    
        freeline {
            hack true
        }
    }

    dependencies {

        compile 'com.antfortune.freeline:runtime:0.6.0'

    }

然后在Application配置:

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

最后,在命令行执行以下命令来下载 freeline 的 python 和二进制依赖,注意切换到项目目录执行

  • Windows[CMD]: gradlew initFreeline

  • Linux/Mac: ./gradlew initFreeline

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

在这里一定要注意是需要切换到自己项目目录执行


这里如果有VPN的话是最好的,这里是下载gradle,你可能会看到 cmd 窗口一直在打印 . .....符号,因为它正在下载,如果出现 timeout ,那重新下吧,或者换成国内的下吧。

下载完了后,cmd会自动运行,这时候不能急,因为它还是在下载东西,还有一种情况是cmd不动了,这时候你可以重新打开 cmd 窗口,继续输入上一条 gradlew.bat initFreeline 命令,此时你会看到这样的 cmd 窗口:


不要急要等待。如果出现这样的:


那代表已经下载完成了,这样就可以用了;

下载完成之后,在命令行输入 python freeline.py 即可进行编译运行。当然如果每次都输入也挺麻烦的,最简单的用法是直接安装 Android Studio 插件。在 Android Studio 中,通过以下路径 Settings → Plugins → Browse repositories,搜索“freeline”,并安装,之后你会看到工具栏有如下按钮:


使用出现的问题:

1:Error:Execution failed for task ':initFreeline'.
> Your local freeline version 0.7.2 is lower than the lastest release version 0.8.6. Please update the freeline version in build.gradle. If you still want the specific version of freeline, you can execute the initial command with the extra parameter `-PfreelineVersion={your-wanted-version}`. eg: `gradlew initFreeline -PfreelineVersion=0.7.2`

问题:版本不一致,在项目中改变自己的版本,我之前用的是0.7.2,但是我下的是0.8.6,所以改变一下

2:第一次 Freeline 编译安装之后不会自动启动 App,这点请大家注意下,其实安装成功了的,只是没有打开而已;

3:不支持多设备同时连接,也就是说不管是模拟器还是真机,只允许同时一台设备连接,否则会失败;

4:第一次增量资源编译的时候有点慢,不过也就在第一次的时候慢,后面速度蹭蹭的;

参考以下官方详细介绍。

https://yq.aliyun.com/articles/59122



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值