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你需要了解的一些细节