学习阿里新的热修复框架sophix

网友投稿 3165 2022-10-25

学习阿里新的热修复框架sophix

学习阿里新的热修复框架sophix

通过这篇文章了解到阿里又出来了新的热修复框架。今天写了个demo体验了一下,记录一下步骤。

一app要做的事情:官方文章

1.申请测试账号,然后创建一个app,获取AppId,和AppSecret以及RSA密钥。上面三个参数需要配置在application节点下面:

2.通过gradle依赖相应的库

maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }

compile 'com.aliyun.ams:alicloud-android-hotfix:3.0.2'

3.在Application中配置如下代码

SophixManager.getInstance().setContext(this) .setAppVersion(BuildConfig.VERSION_NAME) .setAesKey(null) .setEnableDebug(true) .setPatchLoadStatusStub(new PatchLoadStatusListener() { @Override public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) { Log.i("code","mode = "+mode+"info = "+ info); // 补丁加载回调通知 if (code == PatchStatus.CODE_LOAD_SUCCESS) { // 表明补丁加载成功 Log.i("code","表明补丁加载成功"); } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) { // 表明新补丁生效需要重启. 开发者可提示用户或者强制重启; // 建议: 用户可以监听进入后台事件, 然后应用自杀 Log.i("code","用户可以监听进入后台事件, 然后应用自杀"); } else if (code == PatchStatus.CODE_LOAD_FAIL) { // 内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载 // SophixManager.getInstance().cleanPatches(); Log.i("code","内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载"); } else { // 其它错误信息, 查看PatchStatus类说明 Log.i("code"," 其它错误信息, 查看PatchStatus类说明"); } } }).initialize(); SophixManager.getInstance().queryAndLoadNewPatch();

4.申请对应的权限

文章介绍SopHix是非侵入式的,意思就是在项目中依赖很少。以上就完成了所有的配置。

二:生成补丁包官方文章

通过Part2Mac ---Window 生成补丁包。相同的版本,一个包有bug,和一个已修复bug的包,通过Part2生成对应的补丁包。

三:上传补丁包到后台。官方文章

在后台新建的版本号要和app的版本号要一致,不然app到时不知道要-那个补丁包。 按照官网推荐的三步走发布流程。1.先本地测试,2,在灰度发布,3.最后全量发布。

遇到的问题: 1.今天我用的是华为手机测试的,前面几次测试一直失败,后面发现是没有把权限申请下来。如果不成功,建议检查一下app的权限,和网络。 2.我在后台发布成功了补丁包,有时候app需要启动好几次才能搞把补丁包加载成功,不清楚是不是我那个地方处理的不对!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:userAgent获取浏览器信息
下一篇:Android Jni 例子,ndk
相关文章

 发表评论

暂时没有评论,来抢沙发吧~