什么是热修复技术?
关于热修复这个名词,并不陌生。相信大家都有过更新window补丁的经历,通过补丁可以动态修复系统的漏洞,只不过这个过程对用户而言是可选及自行操作。
bug —》
过时
修复技术
那么关于Android平台的热修复技术,简单来说,就是通过下发补丁包,让已安装的客户端动态更新,让用户可以不用重新安装APP,就能够修复软件缺陷的一种技术。
随着热修复技术的发展,不仅可以修复代码,同时可以修复资源文件及SO库。
为什么要使用热修复技术?
在回答这个问题之前,我觉得应该先思考如下几个问题。
- 开发上线的版本能保证不存在Bug么?
- 修复后的版本能保证用户都及时更新么?
- 如何最大化减少线上Bug对业务的影响?
从这些角度来说,相信大家应该都能有所体会,热修复技术带来的优势不言而喻。
- 可快速修复,避免线上Bug带来的业务损失,把损失降到最低。
- 保证客户端的更新率,无须用户进行版本升级安装
- 良好的用户体验,无感知修复异常。节省用户下载安装成本。
怎么选择热修复技术方案?
国内主流的技术方案
1、阿里系
名称 | 说明 |
---|---|
AndFix | 开源,实时生效 |
HotFix | 阿里百川,未开源,免费、实时生效 |
Sophix | 未开源,商业收费,实时生效/冷启动修复 |
HotFix是AndFix的优化版本,Sophix是HotFix的优化版本。目前阿里系主推是Sophix。
2、腾讯系
名称 | 说明 |
---|---|
Qzone超级补丁 | QQ空间,未开源,冷启动修复 |
QFix | 手Q团队,开源,冷启动修复 |
Tinker | 微信团队,开源,冷启动修复。提供分发管理,基础版免费 |
3、其他
名称 | 说明 |
---|---|
Robust | 美团, 开源,实时修复 |
Nuwa | 大众点评,开源,冷启动修复 |
Amigo | 饿了么,开源,冷启动修复 |
方案对比
方案对比 | Sophix | Tinker | nuwa | AndFix | Robust | Amigo |
---|---|---|---|---|---|---|
类替换 | yes | yes | yes | no | no | yes |
So替换 | yes | yes | no | no | no | yes |
资源替换 | yes | yes | yes | no | no | yes |
全平台支持 | yes | yes | yes | no | yes | yes |
即时生效 | 同时支持 | no | no | yes | yes | no |
性能损耗 | 较少 | 较小 | 较大 | 较小 | 较小 | 较小 |
补丁包大小 | 小 | 较小 | 较大 | 一般 | 一般 | 较大 |
开发透明 | yes |