热修复
所谓热修复就是,在我们应用上线后出现小 bug 需要及时修复时,不用再发新的安装包,只需要发布补丁包,在客户不知不觉之间修复掉 bug。
热修复的优点:
- 不需要重新发版
- 用户无感知修复,不需要下载最新的应用,代价小
- 修复成功率高,把损失降到最低
常用热修复框架:
- Dexposed:阿里= >开源=>实时修复
- Andfix:阿里=>开源= >实时修复
- 阿里百川 HotFix:阿里= >未开源=>实时修复
- Qzone超级补丁: QQ 空间=>未开源=>冷启动修复
- QFix:手 Q 团队=>开源=>冷启动修复
- Robust:美团= >开源= >实时修复
- Nuwa:大众点评=>参考 Qzone 实现开源= >冷启动修复
- RocooFix:百度金融= >开源=>冷启动修复
- Aceso:美丽说蘑菇街=>开源=>实时修复
- Amigo:饿了么=>开源= >冷启动修复
- Tinker:微信= >开源= >冷启动修复
- Sophix:阿里=>未开源(商业收费) =>实时修复+冷启动修复
还有一些框架是内部使用没公开的
简单分类如下:
- native hook:Dexposed,Andfix,阿里百川,HotFix;
- Java:Qzone超级补丁;QFix,Robust,Nuwa,RocooFix,Aceso,Amigo,Tinker;
- 混合:Sophix
合理的分类如下:
热修复面试题
热修复是 Android 大厂面试中高频面试知识点,也是我们必须要掌握的知识点。热修复技术,可以看作 Android平台发展成熟至一定阶段的必然产物。
- Android热修复了解吗?
- 热修复基础
- 介绍下你知道的热修复框架
- 基于类加载的热修复
- 几种热修复方案的原理及优缺点?
- 讲解一下中热修复的实现原理
- …
随着移动端业务复杂程度的增加,传统的版本更新流程显然无法满足业务和开发者的需求,热修复技术的推出在很大程度上改善了这一局面。国内大部分成熟的主流 App都拥有自己的热更新技术,像手淘、支付宝、微信、QQ、饿了么、美团等。可以说,一个好的热修复技术,将为你的 App助力百倍。对于每一个想在 Android 开发领域有所造诣的开发者,掌握热修复技术更是必备的素质。
下面就给大家分享一份《Android 热修复框架入门进阶指南》文档,如果大家有需要可以到文末免费获取!
Android 热修复框架入门进阶指南
第一节 AOT / JIT & dexopt 与 dex2oat
- AOT/JIT
- dexopt 与 dex2oat
第二节 热修复设计之 CLASS_ISPREVERIFIED 问题
- 建立测试Demo
- 制作补丁
- 加载补丁
- CLASS_ISPREVERIFIED
第三节 热修复设计之热修复原理
- Android 热修复
- Android 虚拟机和编译加载顺序
- 混合模式的理解
- 源码类到机器执行的文件过程
- 补丁包
- 类补丁生效原理
- Davlik 虚拟机的限制
- Davlik Class resolved by unexpected DEX: 限制和处理方式
- 类加载器的双亲委派加载机制
第四节 Tinker 的集成与使用(自动补丁包生成)
- Tinker组件依赖
- Tinker的配置及任务
- Tinker封装与拓展
- 编写Application的代理类
- 常用API
- 测试
- 细节
第五节 阿里巴巴 Sophix 热修复框架
- 热修复方案对比
- 准备工作
- 集成步骤
- 验证
- 总结
第六节 美团 Robust 热修复框架原理解析
- 热修复框架现状
- 美团 Robust 热修复方案原理
- Robust 实现细节
- 总结
如果需要《Android 热修复框架入门进阶指南》PDF 文档,可以扫码下方二维码免费获取!