轻量级前端框架助力开发者提升项目效率与性能
3165
2022-10-25
学习阿里新的热修复框架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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~