什么是热修复?它的优缺点是什么?

226 篇文章 8 订阅
47 篇文章 0 订阅

我们开发时常常要考虑的一些问题。

开发上线的版本能保证不存在Bug么? 修复后的版本能保证用户都及时更新么? 如何最大化减少线上Bug对业务的影响?

热修复技术帮助我们解决了很多问题,带来的优势不言而喻。不知道各位对于热修复技术掌握如何?

热修复就是通过下发补丁包,让已安装的客户端动态更新,用户不用重新安装APP,就能够修复软件缺陷。

本文将从以下方面为大家详解热修复技术:

  • 什么是热修复?

  • 热修复的优势和不足?

  • 热修复框架分类

  • 技术原理及特点

  • 实际案例解析

  • 热修复技术选择

1、什么是热修复?

热修复就是通过下发补丁包,让已安装的客户端动态更新,用户不用重新安装APP,就能够修复软件缺陷。

image

2、热修复的优势和不足?

优势:

无需重新发布版本;用户无感知修复,代价小;修复成功率高,把损失降到最低。

不足:

  • 补丁只能针对单一客户端版本,随着版本差异变大补丁体积也会增大;
  • 补丁不能支持所有的修改,例如AndroidManifest;
  • 补丁无论对代码还是资源的更新成功率都无法达到100%。

3、常用热修复框架

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

合理的分类如下:

4、技术原理及特点

native解决方案;multidex 方案;Instant Run 热插拔原理等;

5、技术原理及特点

QQ空间;
微信热补丁方案:
美团Robust等;

6、修复技术如何选择?

1、阿里Dexposed
2、阿里AndFix
3、QQ空间
4、美团Robust
5、微信Tinker
6、阿里Sophix

学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。可以助力app百倍的热修复技术,已经非常成熟。各大厂商都拥有自己的热修复技术,像微信,QQ,支付宝,手淘,饿了么/美团等等。

面试官经常会拿热修复来考察开发者的技术功底。因为热修复涉及到的知识面非常的广,需要掌握反射、类加载、gradle、字节码插桩、davilk/art虚拟机等等。

为了帮助到大家可以在面试中,合理的避开面试官挖的坑,我这整理了《2023年版的Android 面试题集》,感谢兴趣的可以进行参考备战面试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值