本文介绍如何在当前 App 的基础上集成 mPaaS 提供的 Hotpatch 热修复功能。目前,热修复支持 原生 AAR 接入、mPaaS Inside 接入 和 组件化接入 三种接入方式。
整个过程分为以下五步:
参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 热修复(HOTFIX)组件。
在工程中通过 组件管理 安装 热修复(HOTFIX)组件。更多信息,参考 管理组件依赖 > 增删组件依赖。
在 Portal 和 Bundle 工程中通过 组件管理 安装 热修复(HOTFIX) 组件。
更多信息,参考 管理组件依赖 > 增删组件依赖。
如果需要使用热修复功能,您还需要完成以下两步操作。
需要将 Application
对象重新继承为 QuinoxlessApplicationLike
,并注意将该类防混淆。此处以 “MyApplication” 为例。
@Keep
public class MyApplication extends QuinoxlessApplicationLike implements Application.ActivityLifecycleCallbacks {
private static final String TAG = "MyApplication";
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
Log.i(TAG, "attacheBaseContext");
}
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate");
registerActivityLifecycleCallbacks(this);
}
@Override
public void onMPaaSFrameworkInitFinished() {
MPHotPatch.init();
LoggerFactory.getTraceLogger().info(TAG, getProcessName());
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
Log.i(TAG, "onActivityCreated");
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
在 AndroidManifest.xml 文件中将 Application
对象指向 mPaaS 提供的 Application
对象。将刚刚生成的 “MyApplication” 类添加到 key 为 mpaas.quinoxless.extern.application
的 meta-data
中。示例如下:
<application
android:name="com.alipay.mobile.framework.quinoxless.QuinoxlessApplication" >
<meta-data
android:name="mpaas.quinoxless.extern.application"
android:value="com.mpaas.demo.MyApplication"
/>
</application>
其中 com.mpaas.demo.MyApplication
是您自定义的 Application 代理类,继承QuinoxlessApplicationLike
。
由于已经集成了相关内容,因此该接入方式不需要做任何变更。
参见 生成热修复包。
参见 发布热修复包。
本节结合 代码示例 中的 热修复 示例,对热修复过程进行详细的说明介绍。
该代码示例中的修复内容是弹出的 toast 中的内容。
修复前
点击 模拟需要被热修复的点击事件 按钮,弹出如下图所示的 toast。
进行修复
点击 触发热修复部署检测 按钮,触发热修复的下载。在下载完成后,彻底关闭 Demo 应用并重新启动。
热修复日志请使用 tag:DynamicRelease 过滤。
在文档使用中是否遇到以下问题
更多建议
匿名提交