前言:希望帮助不会的小伙伴们!
一:阿里官方文档
二:集成步骤:
1.先注册:
先创建应用 选择管理控制平台添加产品
json拷贝到根目录下面
2.查看Appkey,RSA,AppSecret:
点击热修复
查看Appkey,RSA,Appsecret
3.AS(android studio)配置
- gradle远程仓库依赖, 打开项目找到app的build.gradle文件,添加如下配置:
添加maven仓库地址:
代码块
repositories {
maven {
url "http://maven.aliyun.com/nexus/content/repositories/releases"
}
}
添加gradle坐标版本依赖:
compile 'com.aliyun.ams:alicloud-android-hotfix:3.2.8'
- 添加权限
<! -- 网络权限 -->
<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"/>
READ_EXTERNAL_STORAGE权限属于Dangerous Permissions,仅调试工具获取外部补丁需要,不影响线上发布的补丁加载,调试时请自行做好android6.0以上的运行时权限获取。
- 配置AndroidManifest文件
在AndroidManifest.xml中间的application节点下添加如下配置:
<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啥的都是上面图片显示的,记得到上面找哦,记得填写进去哦。
- 新建SophixStubApplication
package com.doublez.stock;
import android.app.Application;
import android.content.Context;
import android.util.Log;
import androidx.annotation.Keep;
import com.taobao.sophix.PatchStatus;
import com.taobao.sophix.SophixApplication;
import com.taobao.sophix.SophixEntry;
import com.taobao.sophix.SophixManager;
import com.taobao.sophix.listener.PatchLoadStatusListener;
public class SophixStubApplication extends SophixApplication {
private final String TAG = "SophixStubApplication";
// 此处SophixEntry应指定真正的Application,并且保证RealApplicationStub类名不被混淆。
@Keep
@SophixEntry(Myapplaction.class)
static class RealApplicationStub {
//Myapplaction 是自己applaction哦,记得替换
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// 如果需要使用MultiDex,需要在此处调用。
// MultiDex.install(this);
initSophix();
}
private void initSophix() {
String appVersion = "1.03";
try {
appVersion = this.getPackageManager()
.getPackageInfo(this.getPackageName(), 0)
.versionName;
} catch (Exception e) {
}
final SophixManager instance = SophixManager.getInstance();
instance.setContext(this)
.setAppVersion(appVersion)
.setSecretMetaData(null, null, null)
.setEnableDebug(true)
.setEnableFullLog()
.setPatchLoadStatusStub(new PatchLoadStatusListener() {
@Override
public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
if (code == PatchStatus.CODE_LOAD_SUCCESS) {
Log.i(TAG, "sophix load patch success!");
} else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
// 如果需要在后台重启,建议此处用SharePreference保存状态。
Log.i(TAG, "sophix preload patch success. restart app to make effect.");
}
}
}).initialize();
}
}
- AndroidManifest.xml 文件中引用 SophixStubApplication ,做如下配置:
<application
android:name=".SophixStubApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<meta-data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="xxx" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="xxx" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="xxx" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
- 查询补丁包
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查询并加载补丁包
SophixManager.getInstance().queryAndLoadNewPatch();
}
}
备注:集成As配置集成基本完成。(没有拉,现在要打补丁了哦)
打补丁
四 :打补丁
- 补丁下载工具
-
Mac版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_macos.zip
-
Windows版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_windows.zip
-
Linux版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_linux.zip
-
调试工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/hotfix_debug_tool-release.apk
备注:我用的是mac版,要注意哦,mac版本的
MAC下需要把本工具移到“应用程序”(/Applications/)目录下,否则可能有异常问题。
-
mac 版就是将这个软件拖到应用程序里面就可以啦。
-
点击应用打开, 主对话框
旧包:<必填> 选择基线包路径(有问题的APK)。
新包:<必填> 选择新包路径(修复过该问题APK)。
日志:打开日志输出窗口。
高级:展开高级选项,见1.2.2。
设置:配置其他信息。
GO!:开始生成补丁。
-
设置对话框
-
都配置好就GO吧,就可以打出补丁包拉!
五 补丁包上传发布
image.png- 补丁发布
- 灰色测试,可以选更新几台设备
-
通知成功,用户已经热跟新,后台显示
image.png
网友评论