您的位置:首页 > 其它

如何使用阿里百川hotfix热修复功能(二)

2016-11-22 16:18 274 查看
         前面我讲到了如何接入阿里百川热修复的准备工作  如何使用阿里百川hotfix热修复功能(一)  
 

       如果申请通过了,应该就是这样的,显示已开通:

  


    点击进入后台,可以看到,会自动生成android 和ios 两个版本的appId。appId我们在后面集成会用到。点击管理,可以看到生成的rsa密钥:

  




这样,我们就可以开始集成了:

   1. android studio集成方式:

添加maven仓库地址:打开项目找到app的build.gradle文件,添加如下配置:



添加gradle坐标版本依赖:



这里因为我使用了友盟推送,所以会有utdid类重复异常, 应该是其它阿里系SDK也依赖了utdid这个SDK, 此时去掉
compile
'com.alibaba.sdk.android.plugins.jar:alisdk-utdid:0.0.1'
依赖即可
如果远程依赖失败,可以使用官方demo提供的jar进行使用:

sdk&demo下载:http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.NlDYS7&treeId=234&articleId=105517&docType=1

2.添加权限

3.配置AndroidManifest文件

将你之前申请的appsecret和rsa文件填入

4.设置混淆配置

ps:如果你的项目中使用到了armeabi-v7a, arm64-v8a文件,

请复制下载SDK(SDK下载&版本更新记录里“SDK”项下载下来,
然后解压)加入so文件,不然会报错。

5.初始化

初始化应该尽可能的早.
强烈推荐在
Application.onCreate()
中进行SDk初始化以及查询服务器是否有可用补丁的操作.
这里用到了appId:

private void initApp() {
this.appId = "78962-1"; //替换掉自己应用的appId
try {
this.appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
} catch (Exception e) {
this.appVersion = "1.6";
}
}
private void initHotfix() {
HotFixManager.getInstance().initialize(this, appVersion, appId, true, new PatchLoadStatusListener() {
@Override
public void onload(int mode, int code, String info, int handlePatchVersion) {
// 补丁加载回调通知
if (code == PatchStatusCode.CODE_SUCCESS_LOAD) {
/**
code: 1 补丁加载成功
code: 6 服务端没有最新可用的补丁
code: 12 当前应用已经存在一个旧补丁, 应用重启尝试加载新补丁
code: 13 补丁加载失败, 导致的原因很多种, 比如UnsatisfiedLinkError等异常, 此时应该严格检查logcat异常日志
*/
// TODO: 10/24/16 表明补丁加载成功
MyLog.e("补丁加载成功:code=",code+"--------");
} else if (code == PatchStatusCode.CODE_ERROR_NEEDRESTART) {
// TODO: 10/24/16 表明新补丁生效需要重启. 业务方可自行实现逻辑, 提示用户或者强制重启, 建议: 用户可以监听进入后台事件, 然后应用自杀
MyLog.e("新补丁生效需要重启:code=",code+"--------");
} else {
// TODO: 10/25/16 其它错误信息, 查看PatchStatusCode类说明
MyLog.e("补丁加载:code=",code+"--------");
}
}
});
/**
* queryNewHotPatch()方法主要用于查询服务器是否有新的可用补丁, 如果查询到可用的话, 首先下载补丁到本地, 然后应用原本没有补丁, 那么第一个补丁会立刻加载应用已经存在一个补丁, 首先会把之前的补丁文件删除, 然后不立刻加载, 而是等待下次应用重启再加载该补丁
补丁在后台发布之后, 并不会主动下行推送到客户端, 需要手动调用queryNewHotPatch方法查询后台补丁是否可用.
只会下载补丁版本号比当前应用存在的补丁版本号高的补丁, 比如当前应用已经下载了版本号为5的补丁, 那么只有后台发布的补丁版本号>5才会重新下载.
*/
HotFixManager.getInstance().queryNewHotPatch();
}


这里就算是接入完成了,是不是很简单。我们接下来就可以进行打补丁patch了。

进入上一篇:如何使用阿里百川hotfix热修复功能(二)

进入下一篇:如何使用阿里百川hotfix热修复功能(三)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hotfix