地址:https://www.aliyun.com/product/hotfix?spm=5176.12825654.h2v3icoap.385.50e32c4a4wAMx1
1.AndroidStudio集成
gradle远程仓库依赖, 打开项目找到app的build.gradle文件,添加maven仓库地址:
repositories {
maven {
url "http://maven.aliyun.com/nexus/content/repositories/releases"
}
}
添加gradle坐标版本依赖:
implementation 'com.aliyun.ams:alicloud-android-hotfix:3.2.14'
2.配置AndroidManifest文件
在AndroidManifest.xml文件中的application节点添加:
image.png
<meta-data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="请输入appkey" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="请输入appsecret" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="请输入rsasecert" />
将上述value中的值分别改为通过阿里平台HotFix服务申请得到的APP ID、App Secret和RSA密钥(这三个东西是在阿里云平台创建应用后才能看到,可以等注册平台创建应用后,再来填写),出于安全考虑,也可以使用setSecretMetaData这个方法进行设置,后续配置会讲到这个方法。
添加权限:
<! -- 网络权限 -->
<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"/>
3.接入方式
目前,Sophix提供两种接入方式:快速接入 和 稳健接入,这部分大家可以直接点击进去看官方文档,这部分文档还是写得比较详细的,前文提到的setSecretMetaData方法也在快速接入中有详细介绍。由于稳健接入完美地兼容Android 8.0以后版本,且初始化与应用原先业务代码完全隔离,所以我直接使用了稳健接入。
使用稳健接入时要注意不要忘记添加这句代码:
// queryAndLoadNewPatch不可放在attachBaseContext 中,否则无网络权限,建议放在后面任意时刻,如onCreate中
SophixManager.getInstance().queryAndLoadNewPatch();//查询是否有新的补丁
注意:这句话一定要添加
我当时就是直接看了稳健接入的文档,但是这文档并没有这句代码(这句代码在快速接入文档里有),结果导致我所有都配置好之后没有实现热修复功能。这句代码的作用是查询是否有新的补丁,我是放在Application里的onCreate()中。
完成以上步骤后,不出意外的话,接入已经成功。这个时候可以通过看log信息判断是否接入成功,第一个红框是初始化信息,第二、三红框是你调用了queryAndLoadNewPatch()返回的信息。大家可以等注册好阿里云平台创建好应用获取并填写APP ID、App Secret和RSA密钥这三个东西到配置文件后,再来看log信息对不对。
注册平台:
https://www.aliyun.com/product/list?spm=a2c4g.11186623.h2v3icoap.2.69014c07QXKkMj
网友评论