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

news2024/11/16 7:45:23

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

开发上线的版本能保证不存在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 面试题集》,感谢兴趣的可以进行参考备战面试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt关于mqtt多平台移植

最近写了很多mqtt相关的项目,但是在各个平台上编译mqtt的库成为了一个很麻烦的事情,每个平台都需要去编译一次,而且还会出现各种问题,为了方便解决这个问题,所以这里将mqtt库的代码以源代码的方式添加进去,…

Kafka 基础概念学习

基础概念学习 一.基础概念二.结构图 一.基础概念 Kafka 基本概念:一种分布式的,基于发布/订阅的消息系统项目ValueBrokerKafka服务端(即部署了Kafka的机器)Producer生产者写数据到主副本Consumer消费者从主副本读数据Consumer Group消费者组&#xff0c…

Apache Doris (二十二) :Doris Rollup物化索引作用及使用注意点

目录 1. Rollup 物化索引作用 1.1 改变索引 1.2 聚合数据 ​​​​​​​2. Rollup物化索引注意点 进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容! 宝子们点赞、收藏不迷路!…

Stable Diffusion - 图像控制插件 ControlNet (OpenPose) 配置与使用

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131591887 论文:Adding Conditional Control to Text-to-Image Diffusion Models ControlNet 是神经网络结构,用于控制预…

mybatis联查 字段重复问题 查询出来一致

联查的数据是不同,但是返回出来的数据是相同的 排查原因: 两个不同的实体类都有同一个字段code 解决办法: 在数据库字段column字段起个别名就可以

Spring 用注解更简单存取对象

Spring 用注解更简单存取对象 ​ 上一篇文章是最原始的创建使用,这篇主要是讲 Spring 更简单的存储和读取对象的核心是使用注解 ,也是日常生活企业用的最多的方法 “注解” 所以这篇的内容是很重要的 !!! 文章目录 Spring 用注解…

基础篇--单片机简介

单片机简介 视频教程 单片机是什么 单片机:Single-Chip Microcomputer 单片微型计算机,是一种集成电路芯片 单片机有什么用? 单片机发展历程 单片机发展超势 CISC Vs RISC CISC和RISC举例 https://wenku.baidu.com/view/b074b0ed998fcc22b…

浅谈Acrel-2000电力监控系统在配电工程中的应用 安科瑞 许敏

摘 要:随着社会经济的快速发展,我国变电站正朝着现代化的方向不断发展,自动化设备以及继电保护装置凭借自身优异性能而获得广泛应用。本文介绍的AM5SE系列的微机保护装置,可以针对中原科技城智慧能源配电工程中不同保护对象提供对…

全志f1c200s嵌入式驱动开发(原理图)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 熟悉全志soc的同学都知道,除了v3s之外,其实还有很多性价比很高的soc。这里面就包含了f1c200s。之前的v3s,也就是我们所说的licheepi上面的soc,反响很不错。后期又出了一个liche…

【数据结构与算法】力扣:二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入&a…

纷享销客携手新奥动力,赋能能源装备制造业企业增长再提速

近日,纷享销客与新奥能源动力科技(上海)有限公司(以下简称:新奥动力)售后数字化平台项目启动仪式在上海顺利召开,新奥动力和纷享销客双方多位高管共同出席了当天的启动会,双方就CRM建…

leetcode链表刷题记录

题单: 一,移除链表元素 题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 题目接口: /*** Definition for singly-linked list.* struct Lis…

轻量化与强度:挑选骑行爱车的科学平衡之道

在自行车运动的大家庭中,挑选一辆既轻量化又强度又够的自行车是一项关键的任务。那么,如何在轻量化与强度的矛盾中寻找这个科学的平衡点呢?让我们跟随本文,一起探讨如何挑选骑行爱车的科学之道。 首先,我们需要明确&am…

第4章 SSD核心技术:FTL 4.3-4.5

4.3 垃圾回收 4.3.1 垃圾回收原理 WA(Write Amplification),即写放大。 OP(Over Provisioning),即预留空间。 4.3.2 写放大 对于空盘来说(未触发GC),写放大一般为1&…

基于DarkFace数据集的高精度人脸检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于DarkFace数据集的高精度人脸检测系统可用于日常生活中来检测与定位人脸目标,利用深度学习算法可实现图片、视频、摄像头等方式的人脸目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练…

volatile 原理

volatile 的底层实现原理是内存屏障,Memory Barrier(Memory Fence) 对 volatile 变量的写指令后会加入写屏障对 volatile 变量的读指令前会加入读屏障 如何保证可见性 写屏障(sfence)保证在该屏障之前的&#xff0c…

液晶仪表业务去年赚了4个亿,又一家汽车电子厂商冲刺IPO

液晶仪表,有多赚钱? 本周,随着天有为电子首次对外发布IPO招股说明书,这家专注于电子式组合仪表、全液晶组合仪表和双联屏仪表等产品的传统汽车仪表企业,揭开了过去几年的财务数据。 作为一家传统汽车仪表转型升级的典…

sqlserver导入外部数据文件

1、外部数据文件存为txt格式,可以带中文标题保存。 2、登录链接数据库服务器,选择任意一个数据库右键-任务-导入数据-数据源:选择Flat File Sourse 平面文件.-文件名:选择文件路径-浏览一下列是否对应上。-下一步-目标&#xff1a…

WebStorm配置代码模板【以vue模板为例,提供vue代码模板】

配置过程 引言 为了便于开发,提高生产效率,我们通常会复制粘贴一些共同代码,在WebStorm中,可以将这些共同代码制作成模板,在使用的时候,只需要输入关键字点击按键即可将模板的代码粘贴到代码文件中&#…

免费申域名

申请地址:https://nic.eu.org/ 英国人地址生成器:https://www.shenfendaquan.com/Index/index/ying_guo_shen_fen_sheng_cheng 1、注册 填写注册信息 进入注册页面,输入注册信息。这里我们打开英国人地址生成器,用英国的信息注…