一、基础
这里的Sophix与TinkerPatch方案不同,使用的是指针替换来修改方法的热更新方案。
二、代码
1.添加项目
首先在阿里云中添加产品:
![github] (/img/sophix/0.png)
添加Demo和添加基本信息,添加后就会在面板中显示
2.添加应用配置
点击进入后添加应用配置:
![github] (/img/sophix/1.png)
填写相应的应用信息
3.添加配置文件
这里有一个json的配置文件,是用来管理所有的功能。这里放到app文件夹下。
这里可以将其他的都关掉(设置0),将热更新的服务打开(设置1)。{
"config": {
"emas.appKey":"",
"emas.appSecret":"",
"emas.packageName":"",
"hotfix.idSecret":"",
"hotfix.rsaSecret":"",
"httpdns.accountId":"",
"httpdns.secretKey":""
},
"services": {
"httpdns_service": {
"status": 0,
"version":"1.2.1"
},
"cps_service": {
"status": 0,
"version":"3.1.4"
},
"hotfix_service": {
"status": 1,
"version":"3.2.6"
},
"man_service": {
"status": 0,
"version":"1.2.4"
},
"feedback_service": {
"status": 0,
"version":"3.1.8"
}
},
"use_maven":true,
"proguard_keeplist":""
}
4.gradle配置
最后添加相应sdk
在项目下build.gradlebuildscript {
repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
}
dependencies {
// 添加emas-services插件
classpath 'com.aliyun.ams:emas-services:1.0.1'
}
}
allprojects {
repositories {
...
maven {
url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
}
}
}
在app下build.gradle中apply plugin: 'com.aliyun.ams.emas-services'
dependencies {
compile 'com.aliyun.ams:alicloud-android-hotfix:3.2.3'
}
5.重要的信息
AppKey
AppSecret
RSA
三个中要的数据需要在项目下的AndroidManifest文件下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
...
>
<meta-data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="" />
</application>
这里只需要将之前的三个数据复制即可。
6.代码
|
7.生成补丁
这里与Tinker类似但是使用的不同的工具,需要在官方下载 SophixPatchTool 来生成我们需要的补丁,最后上传即可
1.选择基础包
2.选择更新包
3.设置中配置Key的基本参数
4.高级配置
5.打包
8.上传补丁
在添加版本时需要注意这里可以就可以进行版本的分渠道区分来,可Tinker类似的使用”字母+数字”的多渠道来加以区别。
之后就是上传文件及发布版本即可。
注意的是在每台设备每天只允许免费更新20次,多出次数则会另算价格。