本篇是一个操作记录,非常清晰的阿里 hotfix 集成,希望能给大家节省一些时间
时间 2017-07-24 因为技术网站更新也很快,时间太久截图对应不上
hotfix 版本 2.0.9 因为2.x不兼容1.x 而且阿里已经在做3.x的公测了 因此直接集成3.x同学可以参考但是不能保证完全一致请原谅我这冗余的介绍.
百川是阿里巴巴旗下的无线开放平台,基于世界级的后端服务和成熟的商业组件,
快速搭建App和提供卓越用户体验,开拓广告、商品、生活服务等无线新商业
添加app界面如下
创建完成之后在应用管理标签下可以看到,就不截图了
阿里百川提供了很多服务,推送,短信,热更新等,选择自己需要的进行开通(有些需要审核)
下面是我已经开通 HotFix 的界面
里面的文档很详细,这里选择重要的记录一下获取sdk配置信息部分
data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="App ID" />
data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="App Secret" />
data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="RSA密钥" />
清单文件需要三个参数
这三个参数需要在 HotFix 管理平台获取
这三个参数需要在 HotFix 管理平台获取
这三个参数需要在 HotFix 管理平台获取
请注意区分百川控制台与HotFix管理后台,百川控制台内可以对百川账号信息等进行编辑更新,也集合了百川所有产品管理后台的入口,而HotFix管理后台只是其中一个。您可以通过百川控制台”选择应用——>我的产品后台——>阿里百川HotFix”前往HotFix管理后台,也可以直接输入网址 https://hotfix.taobao.com 前往。
里面的文档也很详细,这里把实际代码贴一下
private void initHotFix() {
SophixManager.getInstance().setContext(this)
.setAppVersion("1.0")
.setAesKey(null)
.setEnableDebug(true)
.setPatchLoadStatusStub(new PatchLoadStatusListener() {
@Override
public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
// 补丁加载回调通知
if (code == PatchStatus.CODE_LOAD_SUCCESS) {
// 表明补丁加载成功
System.out.println("成功");
} else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
// 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
// 建议: 用户可以监听进入后台事件, 然后应用自杀
System.out.println("表明新补丁生效需要重启");
} else if (code == PatchStatus.CODE_LOAD_FAIL) {
// 内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载
SophixManager.getInstance().cleanPatches();
System.out.println("内部引擎异常");
} else {
// 其它错误信息, 查看PatchStatus类说明
System.out.println("其它错误信息"+mode);
}
}
}).initialize();
SophixManager.getInstance().queryAndLoadNewPatch();
}
其中 appVersion 与你要更新的 app 的 build 文件中 versionName “1.0” 一致
经过上面的步骤,我们的 app 代码已经配置好了.
没错就是只需要配置一下清单,然后调用初始化
其他的任务就是在阿里平台上操作了
下载后按照文档提示,设置好输出路径,选择新包和旧包,点击go就可以了
生成的补丁会保存到你设置的路径中,名称是 sophix-patch.jar(或者类似是jar)
最终要把名字改为 baichuan-hotfix-patch.jar
最终要把名字改为 baichuan-hotfix-patch.jar
最终要把名字改为 baichuan-hotfix-patch.jar
有了补丁就可以发布了
进入 HotFix 管理平台 点击应用后面的管理
新增版本号,我的是1.0
说明一:patch是针对客户端具体某个版本的,patch和具体版本绑定
eg. 应用当前版本号是1.1.0, 那么只能在后台查询到1.1.0版本对应发布的补丁, 而查询不到之前1.0.0旧版本发布的补丁.
说明二:针对某个具体版本发布的新补丁, 必须包含所有的bugfix, 而不能依赖补丁递增修复的方式, 因为应用仅可能加载一个补丁eg. 针对1.0.0版本在后台发布了一个补丁版本号为1的补丁修复了bug1, 然后发现此时针对这个版本补丁1修复的不完全, 代码还有bug2, 在后台重新发布一个补丁版本号为2的补丁, 那么此时补丁2就必须同时包含bug1和bug2的修复才行, 而不是只包含bug2的修复(bug1就没被修复了)
新增完成后,点击版本后的 查看详情-到新界面再次点击上传补丁
到这里已经完成了99%,剩下的就是本地测试,然后发布了
点击查看详情(如上图)
进入下面界面
备注
发布完成后运行自己的程序,然后清理缓存重新启动,你的补丁就起作用了.若是没起作用的话就多重复几次.
补丁中最好有一些标记,例如修改某个界面的提示,否则全是非交互代码不易判断是否成功
阿里后台补丁发布设备数会明显延时,不作为成功与否参考
文章只是操作流程总结,若有错误还望同学指出