码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-11-03 11:05:57      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:api   play   stat   详细   cat   version   key   his   listener   

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 热修复的相关总结(主要是阿里百川的)

标签:api   play   stat   详细   cat   version   key   his   listener   

原文地址:http://www.cnblogs.com/zhaohaixia/p/7776755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!