阿里 HotFix 热更新 集成

来源:互联网 发布:系统之家数据恢复 编辑:程序博客网 时间:2024/06/04 23:33

简介

本篇是一个操作记录,非常清晰的阿里 hotfix 集成,希望能给大家节省一些时间
时间 2017-07-24 因为技术网站更新也很快,时间太久截图对应不上
hotfix 版本 2.0.9 因为2.x不兼容1.x 而且阿里已经在做3.x的公测了 因此直接集成3.x同学可以参考但是不能保证完全一致

请原谅我这冗余的介绍.
百川是阿里巴巴旗下的无线开放平台,基于世界级的后端服务和成熟的商业组件,
快速搭建App和提供卓越用户体验,开拓广告、商品、生活服务等无线新商业

1.1 百度搜索 阿里百川 第一个链接接入 也可以点击这里进入 阿里百川

这里写图片描述


1.2 点击右上角登陆,可以用淘宝账号登陆哦

这里写图片描述
这里写图片描述


1.3 登陆后点击立即参与进入控制台添加应用

这里写图片描述
添加app界面如下
这里写图片描述
创建完成之后在应用管理标签下可以看到,就不截图了


1.4 开通阿里百川的服务

阿里百川提供了很多服务,推送,短信,热更新等,选择自己需要的进行开通(有些需要审核)
下面是我已经开通 HotFix 的界面
这里写图片描述


Android 接入集成

1.5 点击 SDk下载–>技术文档进入集成

这里写图片描述


里面的文档很详细,这里选择重要的记录一下获取sdk配置信息部分

<meta-dataandroid:name="com.taobao.android.hotfix.IDSECRET"android:value="App ID" /><meta-dataandroid:name="com.taobao.android.hotfix.APPSECRET"android:value="App Secret" /><meta-dataandroid:name="com.taobao.android.hotfix.RSASECRET"android:value="RSA密钥" />

清单文件需要三个参数
这三个参数需要在 HotFix 管理平台获取
这三个参数需要在 HotFix 管理平台获取
这三个参数需要在 HotFix 管理平台获取

请注意区分百川控制台与HotFix管理后台,百川控制台内可以对百川账号信息等进行编辑更新,也集合了百川所有产品管理后台的入口,而HotFix管理后台只是其中一个。您可以通过百川控制台”选择应用——>我的产品后台——>阿里百川HotFix”前往HotFix管理后台,也可以直接输入网址 https://hotfix.taobao.com 前往。

这里写图片描述


1.5 Application 初始化

里面的文档也很详细,这里把实际代码贴一下

 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” 一致


1.6 生成补丁并发布

经过上面的步骤,我们的 app 代码已经配置好了.
没错就是只需要配置一下清单,然后调用初始化
其他的任务就是在阿里平台上操作了

首先要下载打补丁工具,2.x以后完成界面操作,告别命令行
这里写图片描述

下载后按照文档提示,设置好输出路径,选择新包和旧包,点击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就没被修复了)

这里写图片描述

新增完成后,点击版本后的 查看详情-到新界面再次点击上传补丁
这里写图片描述
这里写图片描述

注意:如果没有显示你的补丁(jar文件),需要把右下角文件格式改成所有

这里写图片描述

上传补丁成功后状态
这里写图片描述

到这里已经完成了99%,剩下的就是本地测试,然后发布了
点击查看详情(如上图)
进入下面界面
这里写图片描述

备注

发布完成后运行自己的程序,然后清理缓存重新启动,你的补丁就起作用了.若是没起作用的话就多重复几次.
补丁中最好有一些标记,例如修改某个界面的提示,否则全是非交互代码不易判断是否成功
阿里后台补丁发布设备数会明显延时,不作为成功与否参考
文章只是操作流程总结,若有错误还望同学指出

原创粉丝点击