Android 热修复的相关总结(主要是阿里百川的)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 热修复的相关总结(主要是阿里百川的)相关的知识,希望对你有一定的参考价值。

1.主流的热修复是 QQ 、微信和阿里百川

2.我建议使用阿里百川的原因第一:团队在钉钉有专门的客服   二、对于新手来说非常方便

3.操作步骤:阿里百川的api文档很详细 我只说一些坑:

1》下面的初始化只能放在oncreat()中 放在其他文件中没什么作用

 private void initHotfix() {
String appVersion;
try {
appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
} catch (Exception e) {
appVersion = "1.0.0";
}
// initialize最好放在attachBaseContext最前面,初始化直接在Application类里面,切勿封装到其他类
SophixManager.getInstance().setContext(this)
.setAppVersion(appVersion)
.setAesKey(null)
.setSecretMetaData(APPID, APPSECRET, RSASECRET)
.setEnableDebug(true)
.setPatchLoadStatusStub(new PatchLoadStatusListener() {
@Override
public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {

String msg = new StringBuilder("").append("Mode:").append(mode)
.append(" Code:").append(code)
.append(" Info:").append(info)
.append(" HandlePatchVersion:").append(handlePatchVersion).toString();

Log.d(TAG, "onCreate://...... " + msg.toString());
if (msgDisplayListener != null) {
msgDisplayListener.handle(msg);
} else {
cacheMsg.append("\n").append(msg);
}
//code参数
// 补丁加载回调通知
if (code == PatchStatus.CODE_LOAD_SUCCESS) {
// 表明补丁加载成功
} else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
// 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
// 建议: 用户可以监听进入后台事件, 然后调用killProcessSafely自杀,以此加快应用补丁,详见1.3.2.3
} else {
// 其它错误信息, 查看PatchStatus类说明

}
}
}).initialize();
/
    
SophixManager.getInstance().queryAndLoadNewPatch();

}
2》.使用补丁工具打包 先生成jar包再生成log日志 要不log日志为空,
3》.打完补丁的测试 如果提示包名错误检查步骤1》













































以上是关于Android 热修复的相关总结(主要是阿里百川的)的主要内容,如果未能解决你的问题,请参考以下文章

用户说体验 | 关于阿里百川HotFix你需要了解的一些细节

Android热修复技术选型——三大流派解析

热修复 常见的热修复框架简介

用户说体验 | 关于阿里百川HotFix你需要了解的一些细节

阿里百川将推出HotFix产品,内测招募!

热修复之类加载机制总结