热修复简介

热修复(Hotpatch)用于在不发布新版本的情况下热修复线上故障(Bug)。

使用场景

每一次热修复,都是一次 紧急发布。因此,mPaaS 限定了热修复的使用范围是:在来不及发布版本的情况下,需要立刻解决线上客户端问题。

根据最佳实践,热修复只用于修复严重的、影响面大的、具有高可复现性的问题。包括但不仅限于以下情况:

  • 高概率的闪退

  • 严重的 UI 问题

  • 可能造成资损与用户投诉的故障

  • 客户端某些功能不能使用

  • 监管审查导致的紧急修改

使用说明

  • 目前 iOS 热修复功能仅支持专有云环境,公有云环境中无法使用 iOS 热修复功能。

  • 目前 Android 支持两种热修复方式,分别为 DexPatch 和 InstantRun。

  • 使用热修复涉及到调用 MDS 的更新发布接口,会产生相应的接口调用费用。有关接口调用的计费说明,参见 产品定价 中的实时发布计费项说明 。

DexPatch 和 InstantRun 对比

对比项

DexPatch

InstantRun

包大小

无需插桩,没有变化

需要插桩,体积变大

是否立即生效

否,需要重启

特定条件下立即生效,

重启必定生效

是否支持 so 文件修复

不支持

支持

是否支持资源文件修复

不支持

支持

额外依赖

依赖 Gradle 插件插桩

说明

两种热修复不能在同一个版本内混合使用,可以跨版本更换方案。