阿里移动热修复Sophix试用

作者: 代码坊 | 来源:发表于2017-08-11 15:36 被阅读275次

今年Android领域热门技术之一是热修复技术,试用了一下阿里的Sophix,真心给阿里的技术点赞,接入成本非常低。唯一遗憾的是不是完全免费,单个账户创建的应用总活跃设备超过5万台就会收费(偶买噶...),但是有5万台的额度也够用了o(╯□╰)o

对比

image.png

使用步骤

  1. 注册阿里云账号
  2. 注册“移动热修复”功能
  3. 创建APP
  4. 创建版本
  5. 集成Sophix到Android工程
  6. build apk,一个old.apk, 一个new.apk,使用补丁生成工具,生成补丁
  7. 上传补丁
  8. 使用调试app,扫描补丁二维码,进行测试
  1. 发布补丁

集成注意事项

  1. gradle配置
  2. AndroidManifest添加
<!--Sophix配置-->
<meta-data
    android:name="com.taobao.android.hotfix.IDSECRET"
    android:value="" />
<meta-data
    android:name="com.taobao.android.hotfix.APPSECRET"
    android:value="" />
<meta-data
    android:name="com.taobao.android.hotfix.RSASECRET"
    android:value="" />  
  1. 混淆配置

基线包

### Sophix
#基线包使用,生成mapping.txt
-printmapping mapping.txt
#生成的mapping.txt在app/buidl/outputs/mapping/release路径下,移动到/app路径下
#修复后的项目使用,保证混淆结果一致
#-applymapping mapping.txt
#hotfix
-keep class com.taobao.sophix.**{*;}
-keep class com.ta.utdid2.device.**{*;}
#防止inline
-dontoptimize

非基线包
基线包生成的mapping.txt在app/buidl/outputs/mapping/release路径下,移动到/app路径下

### Sophix
#基线包使用,生成mapping.txt
#-printmapping mapping.txt
#生成的mapping.txt在app/buidl/outputs/mapping/release路径下,移动到/app路径下
#修复后的项目使用,保证混淆结果一致
-applymapping mapping.txt
#hotfix
-keep class com.taobao.sophix.**{*;}
-keep class com.ta.utdid2.device.**{*;}
#防止inline
-dontoptimize
  1. Application
    initialize的调用应该尽可能的早,必须在Application.attachBaseContext()或者Application.onCreate()的最开始进行SDK初始化操作,否则极有可能导致崩溃。而查询服务器是否有可用补丁的操作可以在后面的任意地方。
SophixManager.getInstance().setContext(this)
                .setAppVersion(appVersion)
                .setSecretMetaData("IDSECRET", "APPSECRET", "RSASECRET")//使用自己的替换
                .setAesKey(null)
                .setEnableDebug(true)
                .setPatchLoadStatusStub(new PatchLoadStatusListener() {
                    @Override
                    public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
                        String msg = new StringBuilder("").append("Mode:").append(mode)
                                .append(" Code:").append(code)
                                .append(" Info:").append(info)
                                .append(" HandlePatchVersion:").append(handlePatchVersion).toString();
                        LogUtil.i(msg);
                        // 补丁加载回调通知
                        if (code == PatchStatus.CODE_LOAD_SUCCESS) {
                            // 表明补丁加载成功
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                            // 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
                            // 建议: 用户可以监听进入后台事件, 然后应用自杀,以此加快应用补丁
                            // 建议调用killProcessSafely,详见1.3.2.3
                            // SophixManager.getInstance().killProcessSafely();
                        } else if (code == PatchStatus.CODE_LOAD_FAIL) {
                            // 内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载
                            // SophixManager.getInstance().cleanPatches();
                        } else {
                            // 其它错误信息, 查看PatchStatus类说明
                        }
                    }
                }).initialize();
  1. 拉取补丁,放在initialize()之后,可以放在onCreate()中
SophixManager.getInstance().queryAndLoadNewPatch();

参考

相关文章

  • 阿里移动热修复Sophix试用

    今年Android领域热门技术之一是热修复技术,试用了一下阿里的Sophix,真心给阿里的技术点赞,接入成本非常低...

  • 通俗易懂接入阿里Sophix热修复

    Sophix平台:https://emas.console.aliyun.com/移动热修复(Mobile Hot...

  • 阿里热修复——sophix

    集成前准备 1.登录、注册阿里云2.依次选择:产品→移动云→移动热修复→立即开通→管理控制台→创建app(填写信息...

  • 阿里Sophix热修复

    一、官方文档 首先,官方文档,官方文档,官方文档!Sophix 热修复 二、个人总结 1.本地调试成功,发布之后为...

  • Android高级进阶之-手动实现AndFix的热修复方案

    现在市面上主流的热修复方案当属两座大山:Sophix和Tinker。Sophix和Andfix都是阿里团队的杰作,...

  • 阿里热修复Sophix使用

    学习热修复,觉得阿里的热修复Sophix使用挺简单的,是个入门学习热修复的好例子,于是按照文档自己写例子开始集成(...

  • 腾讯热修复Tinker初探

    热补丁修复框架,极大的方便了开发者热修复自己线上App的出现的bug和漏洞。之前已经尝试了阿里热修复SopHix和...

  • Android移动热修复--Sophix

    阿里百川最新热修复技术Sophix:http://www.jianshu.com/p/823b3ac7033e S...

  • 浅尝阿里Sophix热修复

    按照官方文档,一步一步的来,集成失败,来找我!! 原理不详解,一知半解,怕带偏了,应用层开发会用就行 要主动调用q...

  • 阿里百川Hotfix热更新

    目前处于公测阶段的Android 热修复技术,学习下,以后应该会变成收费的。 阿里云Sophix 3.0.6现已上...

网友评论

    本文标题:阿里移动热修复Sophix试用

    本文链接:https://www.haomeiwen.com/subject/odglrxtx.html