为了账号安全,请及时绑定邮箱和手机立即绑定

热修复学习(1):Sophix

标签:
Android

Sophix 是阿里发布的技术 ,hotfix的升级版,接入方式是我用过最简单的,补丁由阿里云平台管理,有收费标准

集成

1注册 账号,并且进入热修复平台管理
阿里云

图片.png


如果没有这个选项说明没开通,在产品服务下找到热修复并且开通,这里就不演示了,都是下一步操作。
1创建一个项目

图片.png


获取Appid 并且进入管理获取appSecret和RSA密钥

图片.png


图片.png


2 android studio集成方式
在build.gradle中添加maven仓库地址和Sophix依赖

图片.png


在Manifest添加需要的权限 和平台上添加应用的appid,appSecret,RSA密钥

图片.png


图片.png


在application类中初始化sophix


public class App extends Application {    @Override
    public void onCreate() {        super.onCreate();
        initSophix();
    }    private  void initSophix(){
        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) {                            // 表明补丁加载成功
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {                            // 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
                            // 建议: 用户可以监听进入后台事件, 然后调用killProcessSafely自杀,以此加快应用补丁,详见1.3.2.3
                          //这里慎重选择强制关闭 ,容易产生闪退的错觉
                        } else {                            // 其它错误信息, 查看PatchStatus类说明
                        }
                    }
                }).initialize();// queryAndLoadNewPatch不可放在attachBaseContext 中,否则无网络权限,建议放在后面任意时刻,如onCreate中
        SophixManager.getInstance().queryAndLoadNewPatch();
    }
}

3补丁测试
初次运行

image.png


运行之后显示

image.png


修改代码--打包--生成补丁


修改代码


生成补丁


添加版本


上传补丁


杀死app之后重启的效果

4总结
1· Sophix集成简单,不需要配置繁琐的各种参数。
2· Sophix支持即时生效,做过两次测试第一次是更新一个吐息好像没关闭就生效了,第二次按上面的代码做的更新 关闭之后才生效的。
3· Sophix支持run instant,而tinker不支持。编译中不支持run instant,不能直接运行测试!
4· Sophix的补丁用阿里自身的SophixPatchTool工具打包生成,不是在AS中生成的,比较方便。

阿里热修复各版本的差异



作者:tmyzh
链接:https://www.jianshu.com/p/b6c492e745f5


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消