AndroidStudio 快速集成 秒级编译工具Freeline
来源:互联网 发布:nginx lua redis 灰度 编辑:程序博客网 时间:2024/05/17 22:27
前言
前段时间,由于项目工程较大,项目编译比较慢,一同事告诉我集成Freeline就会快很多。我百度了一下才发现,Freeline由蚂蚁金服开发的号称Android平台上的毫秒级编译工具,于是粗略研究了一下Freeline,这篇文章为大家简单介绍快速集成Freeline。
什么是Freeline?
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案。它集成了 Google的Instant-Run 、LayoutCast以及Facebook的Buck的所有优点。它的编译速度比这些都快了许多。为我们节省了许多编译与安装的时间。总的来说就是一个字“快”。
关于Freeline的原理可以阅读以下几个:
- https://github.com/alibaba/freeline
- Freeline - Android平台上的秒级编译方
Freeline快速集成
在集成Freeline 之前我们必须搭建Python环境,因为项目每次用Freeline编译时,会执行python freeline.py。关于Python环境的搭建这里就不说了。
Freeline的集成有两种方法,在线集成和离线集成,在线集成非常简单,只需要一下几个步骤:
1、首先我们需要安装AndroidStudio 的 Freeline插件。
依次点击Files/AndroidStudio -> Settings/Perferences -> Plugins -> Browns depositories ,搜索Freeline然后安装并重启,如下图所示:
安装完成后我们会在工具栏看到Freeline的图标,如下所示:
2、在项目级的build.gradle 文件中添加Freeline的依赖
3、在项目的主module的build.gradle中,应用Freeline插件的依赖
4、在AndroidStudio的Terminal用命令行下载freeline的python和2进制依赖
Windows:gradlew initFreeline
MacOS: ./gradlew initFreeline
下载Freeline 没翻墙的话有点慢,在命令后加上 -Pmirror 如我的是MacOS,我们初始化时输入命令./gradlew initFreeline -Pmirror 这样就会快很多。
执行完成后就集成好了Freeline ,如下所示,第一次编译一个项目只用了42s
Freeline离线集成
Freeline离线集成就是将所需要的依赖以module的形式添加到本地项目中,如下所示我们在线添加依赖后,项目的依赖里会有runtime。
我们离线集成就是将runtime以module的形式导入项目中,去掉我们在项目级build.gradle中添加的依赖,在setting.gradle中添加runtime,然后在主module中引用就行了。
- AndroidStudio 快速集成 秒级编译工具Freeline
- AndroidStudio集成Freeline实现秒级编译
- AndroidStudio下freeline秒级编译集成
- 秒级编译工具freeline
- FreeLine实现AndroidStudio秒级编译
- Android秒级编译工具Freeline应用
- Freeline秒级编译
- Android 秒级编译 Freeline
- ANDROID 秒级编译 FREELINE
- Android 秒级编译 Freeline
- Android 秒级编译Freeline
- Android 秒级编译 Freeline
- Android 秒级编译 Freeline
- Android秒级编译方案-Freeline集成和使用过程中的一些问题和解决方案
- Freeline实现工程秒级编译
- 使用秒级编译方案-Freeline
- FreeLine实现Android的秒级编译
- Android秒级编译方案-FreeLine
- Android 音频播放带自动缓存(边播放,变下载)
- lightoj1063【求割点】
- Unity3D游戏开发之Unity与Android交互调用研究
- snprintf函数用法 .
- SNMP V1 V2 V3版本的联系和区别
- AndroidStudio 快速集成 秒级编译工具Freeline
- dede表单提交出现“数据校验不对,程序返回”的解决办法 dede_fields value值
- Excel中如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表
- ReactiveCocoa学习笔记
- JavaScript的解析器是个什么东西
- Yii createCommand CURD操作
- Python语言学习讲解十六:python之描述符__set__和__get__ 等解释
- inode占用100%时硬盘无法写入文件故障处理
- 手工建PDB