robust是美团开发的一套热更新方案,它是基于Instant Run原理开发的一套新框架,相比于Tinker这种改变DexElements加载顺序的方式只能重启生效,robust实现了对代码修改的实时生效(热插拔)。下面来说说Robust的使用。
1.添加依赖
在project中的build.gralde中添加依赖
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
//编译apk使用使用
classpath 'com.meituan.robust:gradle-plugin:0.4.90'
//打更新包时使用
classpath 'com.meituan.robust:auto-patch-plugin:0.4.90'
}
在app的build.gradle中添加依赖
apply plugin: 'robust'
//当需要打更新包的时候打开
//apply plugin: 'auto-patch-plugin'
....
implementation 'com.meituan.robust:robust:0.4.90'
2.配置robust.xml
robust使用的时候需要配置一个robust.xml的配置文件,和src目录同级。
true
false
false
true
false
true
true
com.app.motion.robustmotion
com.meituan.robust
com.meituan.sample.extension
com.app.motion.robustmotion.patch
这里需要配置的主要是两个节点,hotfixpackage和patchpackname。hotfixpackage元素用于标识需要进行热更新类所属的包,也就是在这个包下面的类才可以进行热更新,否则不能。patchpackname用于标识配置更新包的包名,可以取任意的名字。
3.主体代码
demo的布局比较简单,只有两个button,一个用于加载更新包,一个用于跳转到SecondActivity。
public class MainActiv