美团 Android 热更新方案 Robust 开源了。
Robust 是新一代热更新系统,对 Android 版本无差别兼容,无需发版就可以做到随时修改线上 bug,快速对重大线上问题作出反应。Robust 热更新系统借鉴 Instant Run 原理,实现了一个兼容性更强而且实时生效的热更新方案。其基本思路是,Robust 热更新系统在一个方法的入口处插入一段跳转代码,当发现某个方法出现 bug 就跳转执行补丁中的代码,略过原有代码的执行,否则执行原有方法体逻辑。
优势
支持 Android2.3-7.X 版本
高兼容性、高稳定性,修复成功率高达三个九
补丁下发立即生效,不需要重新启动
支持方法级别的修复,包括静态方法
支持增加方法和类
支持 ProGuard 的混淆、内联、优化等操作
需要保存打包时生成的 mapping 文件以及 build/outputs/robust/methodsMap.robust 文件。
自动化补丁
自动化补丁是 Robust 实现的一个跃进,开源版本中也已经包含这部分工作。使用者只需要提交修改完 bug 后的代码,运行和线上 apk 打包同样的 gradle 命令即可,会在项目的 app/build/outputs/robust 目录下生成补丁。
具体实现原理和样例请查阅项目文档。
本文来自开源中国社区 [http://www.oschina.net]