【Android进阶笔记】热修复(代码、资源、动态链接库)

本文详细介绍了Android热修复技术,包括其作用、主流热修复框架如AndFix、Tinker等的比较,以及类加载、底层替换和InstantRun方案的原理和实现。重点探讨了如何通过修改类加载顺序、替换底层结构和资源来实现实时修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 热修复

=========================================================================

1.1. 作用


  • 严重的Bug,需要立即解决,而不用重新打包上架。

  • 解决版本升级率不高,Bug会一直影响不升级版本的用户。

  • 实现小功能短时间版本覆盖,如节日活动。

1.2. 主流热修复框架


1.2.1. 主流框架

| 派系 | 框架 |

| — | — |

| 阿里系 | AndFix⚠️、Dexposed⚠️、HotFix⚠️、Sophix |

| 腾讯系 | Tinker、超级补丁、QFix |

| 知名公司 | 美团Robust饿了么Amigo⚠️、蘑菇街Aceso⚠️ |

| 其他 | RocooFix⚠️、Nuwa⚠️、AnoleFix⚠️ |

1.2.2. 框架对比

| 特性 | Sophix | Tinker | 超级补丁 | Robust |

| — | — | — | — | — |

| 即时生效 | 支持 | 不支持 | 不支持 | 不支持 |

| 方法替换 | 支持 | 支持 | 支持 | 支持 |

| 类替换 | 支持 | 支持 | 支持 | 不支持 |

| 类结构修改 | 支持 | 支持 | 不支持 | 不支持 |

| 资源替换 | 支持 | 支持 | 支持 | 不支持 |

| so替换 | 支持 | 支持 | 不支持 | 不支持 |

| 补丁包大小 | 较小 | 较小 | 较大 | 一般 |

| 性能损耗 | 较小 | 较大 | 较大 | 较小 |

| 侵入式打包 | 无侵入 | 侵入 | 侵入 | 侵入 |


2. 代码修复

==========================================================================

代码修复主要有3中方案:类加载方案、底层替换方案、Instant Run方案。

2.1. 类加载方案


采用类加载方案的主要是 Tinker、超级补丁、QFix、Amigo 和 Nuwa 等。

2.1.1. Dex 分包机制

【方法数 65536 限制】

由于 DVM 指令集的方法调用指令 i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值