Android小记-阿里热更新

226 阅读2分钟

1.开通阿里云EMAS移动研发产品服务,开通指南:

help.aliyun.com/document_de…

2.配置SDK

help.aliyun.com/document_de…

添加配置文件在app 目录下

热更新只需要修改配置hotfix_service 的 status 的状态为1即可,其他的都设置为0 其他配置都不用动

添加maven

高版本gradle 如果配置SDK 失败,可添加:allowInsecureProtocol = true

引用配置文件到project 的build.gradle 

app 的 build.gradle 应用插件 

初始步骤完毕

3.开始集成:

help.aliyun.com/document_de…

导入远程依赖

 implementation 'com.aliyun.ams:alicloud-android-hotfix:3.3.5'

添加应用权限

<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"/>

 

配置AndroidManifest 

<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密钥" />

 

Appid,App Secret,RSA秘钥 获取途径:

配置已经完毕

3.代码实现

直接拷贝SophixStubApplication 该文件到项目中 

需要修改App.class 为项目的Application

替换Application 

###关键代码

调用查询补丁:没有这个线上补丁查询不到,可以在app 启动时就调用一次,或者定时调用都可,

SophixManager.getInstance().queryAndLoadNewPatch()

4.生成补丁

打包工具:ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatch…

方法: 只需要把基准包和新修改的包放到打包工具 自动生成 sophix-patch.jar

配置补丁输入路径,可勾选打包注意事项,查看注意事项

强制冷启动:勾选的话强制生成补丁包为需要冷启动(重启)才能修复的格式。默认不选的话,工具会根据代码变更情况自动选择即时热替换(无需重启)或者冷启动修复(重启)

测试过,暂未发现不用重启也能生效的情况。

出现打包一直加载异常:

解决办法:在gradle.properties 添加 android.enableResourceOptimizations=false

上传补丁  发布补丁 : help.aliyun.com/document_de…

到此为止,已全部配置完成。

备注:

1.测试过补丁可以替换资源,可以修改代码资源,可以修改build.gradle ,但是不能修改版本号

2.补丁包的版本号需要和基准包的版本号一直才可查询到补丁进行修复

3.queryAndLoadNewPatch() 方法可以查询当前是否有最新补丁,如果查询到了会进行预加载,然后下次重新启动时,即可生效。

附言:

本地测试补丁,无需平台发布,即可本地调试补丁是否可用

android 调试工具下载 

ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/hotfix_debu…

调试方法:

错误码查找:help.aliyun.com/document_de…