Android高效进阶:从数据到AI【2.5】

5.3.3 Freeline 秒级编译浅析及接入

Freeline 是蚂蚁聚宝团队在 Android 平台上量身定制的一个基于动态替换的编译方案。稳定性方面:完善的基线对齐、进程级别的异常隔离机制。性能方面:内部采用了类似Facebook 开源工具 buck 的多工程多任务并发思想,并对代码及资源编译流程做了深入的性能优化。

官方团队在云栖社区对 Freeline 的具体原理进行了详细说明, Freeline 具备以下特性。

 支持标准的多模块 Gradle 工程的增量构建。

 并发执行增量编译任务,二次编译达到秒级。

 编译时热重载。

 进程级别的异常隔离机制。

 支持 so 动态更新。

 支持 resources.arsc 缓存。

 支持 Windows、 Linux 和 Mac 平台。

当然,作为一个高速增量编译工具,同样有一定的局限性,分别如下。

 全量编译较慢。

 不支持删除带 ID 的资源,否则可能导致 AAPT 编译出错。

 暂不支持抽象类的增量编译。

 不支持开启 Jack 编译。

 不支持 Kotlin、 Groovy、 Scala。

接入 Freeline 的核心步骤如下。

1.安装 Python 环境

由于 Freeline 是运行在 Python 环境中的,因此要求开发设备具备 Python 运行环境。不过, Freeline 暂时只支持 Python 2.x 版本,安装 Python 环境时不要安装不合适的版本。

2.集成 Freeline 编译环境

第一步,配置项目根目录的 build.gradle,加入 freeline-gradle 的依赖:

1. buildscript {
2. repositories {
3. jcenter()
4. }
5. dependencies {
6. classpath 'com.antfortune.freeline:gradle:0.8.8'
7. }
8. }

第二步,在主 Module 的 build.gradle 中,应用 Freeline 插件的依赖:
 

1. apply plugin: 'com.antfortune.freeline'
2. android {
3. ...
4. }

第三步,初始化 Freeline 编译环境: Windows: gradlew initFreeline Linux/Mac: ./gradlew initFreeline

3.安装 Android Studio 插件

进入 Android Studio 配置项 Plugins 的页面搜索插件,如图 5-15 所示。

重启 Android Studio 之后,可以发现 Freeline 快捷按钮,如图 5-17 所示。

4.运行

运行 Freeline 编译有如下两种方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值