更新时间:2021-01-07 18:41
本文将引导您从零开始创建 Android 工程并使用热修复功能。
本文将分为两部分向您完整的介绍并演示热修复的使用流程:
接入热修复流程如下:
参考文档 配置开发环境。
参考文档 在控制台创建应用。此时,本地还没有带签名的 APK,因此在下载配置文件时,可以暂不上传 APK。
下载的配置文件的文件名示例:Ant-mpaas-4111111111005-default-Android.config
。
参考 接入流程说明 在客户端创建 基于 mPaaS 框架 的新工程,并确保使用 mPaaS > Build 成功 构建工程。
签名是为了下一步配置加密信息做准备。
在 Android Studio 中打开 Portal 工程,然后参考 Android 官网文档 给应用签名,并生成带签名的 APK。
签名步骤如下:
{APK Destination Folder}/{Build Type}
目录下。在下图的示例中,保存目录为 /Users/archer.zb/AndroidStudioProjects/Tutorials/Hotpatch/app/debug/
。build.gradle
示例如下:
signingConfigs {
release {
keyAlias 'keyAlias'
keyPassword 'keyPassword'
storeFile file('/Users/archer.zb/Desktop/hotpatch/keystore.jks')
storePassword 'storePassword'
}
debug {
keyAlias 'keyAlias'
keyPassword 'keyPassword'
storeFile file('/Users/archer.zb/Desktop/hotpatch/keystore.jks')
storePassword 'storePassword'
}
}
为了保证客户端获取热修复包过程的安全,需要对网络内容进行加密。配置加密信息的步骤如下:
到控制台重新下载配置文件。
进入 mPaas 控制台 代码管理 > 代码配置 > Android 页面,上传 上一步 生成的带签名 APK,并再次下载配置文件。此时,将下载到 .zip
压缩包。
.zip
包,用其中的 Ant-mpaas-xxx-xxx-Android.config
文件替换 Portal 工程主 module 中的同名文件。 base64Code
的值一定非空。src/main/res/drawable
中的 yw_1222.jpg
图片:至此,热修复就已经接入,您可以根据业务需求编写代码。
为了体验热修复,您可以在 Bundle 工程的界面中增加两个按钮:
对应的布局代码如下:
<Button
android:id="@+id/toast"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Toast" />
<Button
android:id="@+id/hotfix"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hotfix" />
对应的 Java 代码如下:
findViewById(R.id.toast).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 按钮点击时,先做除法运算,再通过弹出框显示计算结果
int result = 1/0; // 除数为 0,是个 bug,会导致应用崩溃
Toast.makeText(getApplicationContext(), "result = " + result, Toast.LENGTH_SHORT).show();
}
});
findViewById(R.id.hotfix).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 按钮点击时,触发热修复
// SDK 版本 ≥ 10.1.32 时,调用如下接口:
MPHotpatch.init();
}
});
加入示例代码后,重新构建 Bundle 与 Portal 生成的 APK 即可。体验热修复过程详见下方的 热修复 Bug 演示。
在编写完客户端代码后,即可将生成的 APK 发布至应用平台,以便 App 用户可下载更新。详情参见 Android 发布管理 或 iOS 发布管理。
热修复 Bug 的示例流程如下:
生成热修复包时,需要新老版本(即 Bug 版本和修复后的版本)的构建结果。因此,首先需要备份 Bug 版本构建生成的 .jar
包。
.jar
包路径:
build/intermediates/bundle/xxxx-raw.jar
。若构建 release 包,则 .jar
包名称没有 -raw
后缀。
示例:
修改 Bug 代码,并重新构建工程。对应上文示例,可将除数改成 1:
在 Android Studio 中,使用 mPaaS > Generate Hotpatch 功能生成热修复包:
.jar
包。详见上文 备份 Bug 版本构建生成的 .jar 包。.jar
包。.jar
文件:更多信息,参见 热修复包功能。
进入 mPaas 控制台 > 实时发布 > 热修复管理 页面。
点击 添加热修复包,然后完善相关信息,并点击 确定。
如下图,点击 创建发布。
打开 Android Studio Logcat,关键词填写 DynamicRelease
,过滤器选择 No Filters。
确保手机连接 Android Studio,然后打开手机上安装的 Bug 版 App,点击 Hotfix 按钮,可以看到如下日志:
Ant-mpaas-xxx-xxx-Android.config
文件中的 base64Code
的值非空。build.gradle
文件中 signingConfigs
配置正确。
在文档使用中是否遇到以下问题
更多建议
匿名提交