Freeline 是一款 Android 平台上的秒级编译方案,能够显著地提高 Android 工程的编译速度。
实际项目中修改文件重新生效的时间在10s以内,可以极大的提升编码的效率。
Freeline 支持的特性如下:
支持标准的多模块 Gradle 工程的增量构建
并发执行增量编译任务
进程级别异常隔离机制
支持 so 动态更新支持 resource.arsc 缓存
支持 retrolambda
支持 DataBinding
支持各类主流注解库(APT)
支持 Windows,Linux,Mac 平台
因为Freeline使用的是python2,所以使用之前需要安装python2,安装过程在此略过。下面简单介绍Freeline的命令行接入方式。
1 首先修改project-level 的 build.gradle,加入 freeline-gradle 的依赖:
buildscript{
repositories{
jcenter()
}
dependencies {
classpath 'com.antfortune.freeline:gradle:x.x.x'
}
}
2 然后,在你的主 module 的 build.gradle 中,应用 freeline 插件的依赖
apply plugin: 'com.antfortune.freeline'
android {
.........
freeline {
hack true
//如果配置了多Flavor,可以在这里指定编译的
productFlavor "develop"
}
}
关于Freeline DSL 更多的配置可参考[Freeline DSL References](https://github.com/alibaba/freeline/wiki/Freeline-DSL-References)
到此接入完成,开始下面命令初始化项目:
gradlew initFreeline
初始化操作只需要进行一次,然后开始编译项目。
python freeline.py
然后后面每一次都使用上述命令编译更新项目即可。
接入的大概流程如上所述,如有问题可以参考这篇文章。
因为十分好奇为什么Freeline可以做到加快编译的效果,下面将对Freeline进行一些详细的分析。
Freeline框架整体上包含如下四部分:
Python运行编译框架
Gradle plugin部分
Freeline android代码部分
编译使用到的工具等
接下来我们将逐个部分进行分析。
网友评论