关于Androidstudio快速编译
前言
不得不说在AndroidStudio运行代码简直太慢了,虽然有很多Gradle配置加速但是效果不是很明显,这大大影响了我们的开发效率,根据自己的学习这里大家提供了两款工具JRebel for Android和阿里的freeline
一、JRebel for Android
介绍:Jrebel是一款Java程序的开发工具,基于差量更新方法。它允许你的应用程序代码更新之后不用重新部署或重启,而是直接将修改的文件传送过去。毫无疑问,支持Android应用程序,无须配置,使用起来超简单方便,比较苦逼的是这个是付费的,但是注册之后可以体验21天。
JRebel安装与使用
1:通过AndroidStudiox下载插件
![](https://img.haomeiwen.com/i5401666/7c402ac7b514fd1c.png)
之后重启就可以看到
![](https://img.haomeiwen.com/i5401666/fba9b97ae0cb3dd9.png)
当你第一次运行的时候按第一个按钮,之后发生改变就直接按第三个按钮这样的你真机或模拟器就能快速的显示了。
二 、Freeline
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想, 并对代码及资源编译流程做了深入的性能优化。
简单来说,就是阿里提供的一个增量编译方案,主要是为了加快日常开发过程中的项目编译速度,但是目前只支持debug模式非混淆的开发。
地址:地址:https://github.com/alibaba/freeline
freeline安装与使用
1、下载插件
![](https://img.haomeiwen.com/i5401666/cbeb14281e5b32ac.png)
安装完成后我们会在工具栏看到Freeline的图标,如下所示:
![](https://img.haomeiwen.com/i5401666/9d3b25e5b1c4e31f.png)
2、在项目级的build.gradle 文件中添加Freeline的依赖
![](https://img.haomeiwen.com/i5401666/08dc4152d0fc67d2.png)
3、在项目的主module的build.gradle中,应用Freeline插件的依赖
![](https://img.haomeiwen.com/i5401666/49f6610ff06d751d.png)
4、自定义application,在onCreate中加入FreelineCore.init(this);
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
FreelineCore.init(this);
}
}
之后直接运行就可以了
三、总结对比
JRebel for Android
· 优点
1:在 Instant Run 之前就已经存在的 Android 平台上的增量编译解决方案,zeroturnround 有大量 JVM 上热部署的实践积累
2:零配置,只需安装 Android Studio 插件,立刻可以运行
3:相比 Instant Run 支持的范围广
4:支持 Retrolambda 与部分流行注解库
5:字节码层面的动态加载,理论上支持几乎所有基于 JVM 语言,包括 Kotlin、Groovy 等
· 缺点
1:收费,价格较高,可以参考链接
2:不支持 databinding
3:只有收费版才能 debug,有专门的 debug 工具
4:Crash 后需要重新全量编译,单次全量编译、安装的速度非常慢
Freeline
· 优点
1:支持大多数场景的增量编译
2:支持 Retrolambda 与 APT
3:支持 so 动态替换
4:App crash 后,仍然可以通过增量编译来修复
5:大多数情况下增量编译可以在 10s 内完成
· 缺点
1:初次接入可能存在一定的问题,需要稍微花点时间来解决
2:在简单的工程上,与其他构建方案相比,没有明显的优势
3:不支持 databinding
4:不支持删除带 id 的资源
5:不支持 Kotlin