Android 秒级编译框架配置过程 --Freeline

来源:互联网 发布:java格式化日期24小时 编辑:程序博客网 时间:2024/05/19 20:39

Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想, 并对代码及资源编译流程做了深入的性能优化。
具体原理请查看:https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

github: https://github.com/alibaba/freeline

配置步骤:

1.配置project-level的build.gradle,加入freeline-gradle的依赖:
buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.antfortune.freeline:gradle:0.8.2'    }}
2. 在你的主module的build.gradle中,应用freeline插件的依赖:
apply plugin: 'com.antfortune.freeline'android {    ...}
3. 在命令行执行以下命令来下载 freeline 的 python 和二进制依赖。
Windows[CMD]: gradlew initFreelineLinux/Mac: ./gradlew initFreeline

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

你也可以使用参数-PfreelineVersion={your-specific-version}来下载特定版本的 freeline 依赖。

如果你的工程结构较为复杂,在第一次使用freeline编译的时候报错了的话,你可以添加一些freeline提供的配置项,来适配你的工程。具体可以看Freeline DSL References。https://github.com/alibaba/freeline/wiki/Freeline-DSL-References

4.安装Freeline插件,在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装. 安装好后会在工具栏出现如下图所示按钮

这里写图片描述

5.在工程根目录下执行一次全量编译
python freeline.py -f

!!!!!!!!!这步很重要,如果不执行,否则当你点击Freeline按钮时会报错,错误内容如下:

Traceback (most recent call last):  File "freeline.py", line 49, in <module>    main()  File "freeline.py", line 45, in main    freeline.call(args=args)  File "freeline.py", line 20, in call    self.dispatcher.call_command(args)  File "/Users/hiperion/AndroidStudioProjects/Bloomsky/freeline/freeline_core/dispatcher.py", line 57, in call_command    self._exec_command(self._command)  File "/Users/hiperion/AndroidStudioProjects/Bloomsky/freeline/freeline_core/dispatcher.py", line 100, in _exec_command    '[WARNING] some important file missed, a clean build will be automatically executed.')  File "/Users/hiperion/AndroidStudioProjects/Bloomsky/freeline/freeline_core/dispatcher.py", line 125, in _retry_clean_build    self._setup_clean_build_command(is_build_all_projects=False)TypeError: _setup_clean_build_command() takes exactly 3 arguments (2 given)

我已经给官方提了issue,很快得到了响应,正在修复中
issue详细请点击这里

6.现在就可以点击工具栏安装好的插件进行秒级增量编译了。

Enjoy!

0 0
原创粉丝点击