集成阿里百川hotFix过程步骤

准备工作:
1. 注册阿里百川开发者 ( http://baichuan.taobao.com/
2. 创建百川应用 ,申请HotFix产品权限 (审核需要时间,一个工作日内审批)
3. 下载补丁包工具SophixPatchTool_2.0.1_win.zip和调试工具hotfix_debug_tool.apk

开始步骤:
1.配置maven仓库地址和gradle依赖(如果仓库无法连接,则下载sdk的jar包,放入项目)
仓库地址:
repositories {
   maven {
   }
}

gradler依赖:
dependencies {
    compile 'com.taobao.android:alisdk-hotfix:2.0.1'
}

2.AndroidManifest配置权限(android 6.0需做运行时权限处理/READ_EXTERNAL_STORAGE/ACCESS_WIFI_STATE)
INTERNET
ACCESS_NETWORK_STATE
ACCESS_WIFI_STATE
READ_EXTERNAL_STORAGE

3.在AndroidManifest.xml中间的application节点下配置 (App ID,App Secret和RSA密钥三个信息)
<meta-data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="App ID" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="App Secret" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="RSA密钥" />

4.混淆配置 (防止项目混淆后,找不到HotFix框架的代码)
-printmapping mapping.txt
-keepclasseswithmembernames class * {
    native <methods>;
}
-keep class com.taobao.android.**{*;}
-keep class com.ta.utdid2.device.**{*;}

5.在Application类中onCreate初始化HotFix,并做相应回调处理(回调状态码mode,code,info,handlePatchVersion,具体参数遇到以后,查看文档说明)
SophixManager.getInstance().setContext(this)
                .setAppVersion(appVersion)
                .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) {
                            // 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
                            // 建议: 用户可以监听进入后台事件, 然后应用自杀
                        } else if (code == PatchStatus.CODE_LOAD_FAIL) {
                            // 内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载
                            // SophixManager.getInstance().cleanPatches();
                        } else {
                            // 其它错误信息, 查看PatchStatus类说明
                        }
                    }
                }).initialize();
SophixManager.getInstance().queryAndLoadNewPatch();
------------------------------------------------------------------------------------------------------
mode: 补丁模式, 0:正常请求模式 1:扫码模式 2:本地补丁模式
code: 补丁加载状态码, 详情查看PatchStatusCode类说明
info: 补丁加载详细说明, 详情查看PatchStatusCode类说明
handlePatchVersion: 当前处理的补丁版本号, 0:无 -1:本地补丁 其它:后台补丁

----------------------------------------------------------------------------------------------------------
code: 1 补丁加载成功
code: 6 服务端没有最新可用的补丁
code: 11 RSASECRET错误,官网中的密钥是否正确请检查
code: 12 当前应用已经存在一个旧补丁, 应用重启尝试加载新补丁
code: 13 补丁加载失败, 导致的原因很多种, 比如UnsatisfiedLinkError等异常, 此时应该严格检查logcat异常日志
code: 16 APPSECRET错误,官网中的密钥是否正确请检查
code: 18 一键清除补丁
code: 19 连续两次queryAndLoadNewPatch()方法调用不能短于3s

6.完成上述配置后,应用出现bug,需要修复。则修改好bug后,打一个新包。使用打包工具SophixPatchTool.exe,传入旧包和新包。点击Go生成补丁baichuan-hotfix-patch.jar
1.生成的补丁,要放入HotFix后台不可以更改名字
2.补丁的版本号要对应项目中的versionName
3. 补丁是针对客户端具体某个版本的,补丁和具体版本绑定
4.针对某个具体版本发布的新补丁, 必须包含所有的bugfix, 而不能依赖补丁递增修复的方式, 因为应用仅可能加载一个补丁

7.使用调试工具可以调试HotFix补丁的效果(生成的补丁,通过调试工具的扫码功能,获取补丁查看是否修复bug,调试成功后,才在HotFix后台选择发布补丁,避免发布的补丁有问题又要撤销的麻烦)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值