Android技术背后涉及到了多少知识点?

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

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

Android技术背后涉及到了多少知识点?_第1张图片

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

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

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

  • 什么是热修复?

  • 热修复的优势和不足?

  • 热修复框架分类

  • 技术原理及特点

  • 实际案例解析

  • 热修复技术选择

Android技术背后涉及到了多少知识点?_第2张图片

1、什么是热修复?

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

Android技术背后涉及到了多少知识点?_第3张图片

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

合理的分类如下:

Android技术背后涉及到了多少知识点?_第4张图片

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虚拟机等等。

最后

分享一份我自己收录整理的**Android学习PDF+架构视频+面试文档+核心笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料**。
这些都是我现在闲暇还会反复翻阅的精品资料。里面对近几年的大厂面试高频问题都有详细的讲解,也是对我这次面试通过有很大的帮助。相信可以有效的帮助大家掌握知识、理解原理。

当然你也可以拿去查漏补缺,提升自身的竞争力。

如果你有需要的话,可以私信我【666】获取或者点击查看详情

喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗~

Android技术背后涉及到了多少知识点?_第5张图片
Android技术背后涉及到了多少知识点?_第6张图片

你可能感兴趣的:(程序员,Android)