前面我讲到了如何接入阿里百川热修复的准备工作 如何使用阿里百川hotfix热修复功能(一)
如果申请通过了,应该就是这样的,显示已开通:
点击进入后台,可以看到,会自动生成android 和ios 两个版本的appId。appId我们在后面集成会用到。点击管理,可以看到生成的rsa密钥:
这样,我们就可以开始集成了:
1. android studio集成方式:
添加maven仓库地址:打开项目找到app的build.gradle文件,添加如下配置:
添加gradle坐标版本依赖:
compile 'com.alibaba.sdk.android.plugins.jar:alisdk-utdid:0.0.1'依赖即可
如果远程依赖失败,可以使用官方demo提供的jar进行使用:
2.添加权限
<! -- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<! -- 外部存储读权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
将你之前申请的appsecret和rsa文件填入
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="your-app-secret"/>
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="your-rsa-secret"/>
-keepclass*extendsjava.lang.annotation.Annotation
-keepclasseswithmembernamesclass* {
native<methods>;
}
-keepclasscom.alipay.euler.andfix.**{
*;
}
-keepclasscom.taobao.hotfix.aidl.**{*;}
-keepclasscom.ta.utdid2.device.**{*;}
-keepclasscom.taobao.hotfix.HotFixManager{
public*;
}
请复制下载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热修复功能(三)
本文详细介绍了如何接入阿里百川热修复功能,包括添加Maven仓库地址、配置Gradle依赖、添加权限、配置AndroidManifest文件及初始化过程。通过简单的步骤实现应用的快速修复。
2354

被折叠的 条评论
为什么被折叠?



