主流热修复框架介绍

本文详细介绍了Andfix、阿里百川HotFix、Sophix、微信Tinker、饿了么Amigo和美团Robust等主流Android热修复框架的原理、集成方法和优缺点。Andfix利用Native层方法替换,集成简单但不支持新增方法;Tinker通过类替换实现修复,支持资源替换但可能导致内存问题;Amigo直接替换ClassLoader,兼容性好但补丁包大;Robust基于热插拔原理,支持方法级别修复但有代码侵入性。
摘要由CSDN通过智能技术生成

本文汇总了主流的热修复框架,并对每个框架的特性做了简单的介绍,主流方案比较如下图。

方案对比 Andfix 阿里百川HotFix Sophix 微信Tinker 饿了么Amigo 美团Robust
即时生效 yes yes 同时支持即时生效和冷启动修复 no no yes
方法替换 yes yes yes yes yes yes
so替换 no no yes yes yes no
资源替换 no no yes yes yes no
四大组件 no no yes no yes no
实现原理 方法替换jni Hook 方法替换jni Hook 组合多种方法 修改dexElements数组 直接替换classLoader java hook
补丁生成 依赖apkpatch工具 SophixPatchTool界面工具 便捷,图形化界面 gradle命令生成 新Apk即是补丁文件 gradle生成
补丁大小 较小 较小 不大,仅变动的资源和代码 Davilk全量较大,Art差异包 较大 较小
接入成本 一般
性能开销 较小 较小 不大,仅变动的资源和代码 在App里合成,较大 全量替换,较大 较小
服务器支持 有,支持加密传输及签名校验 支持服务端控制 TinkerPatch平台 有,已停止更新

Android热修复技术原理详解

Andfix

原理
方法替换是 AndFix 的热修复方案的关键,虚拟机在加载一个类的时候会将类中方法解析成 ArtMethod 结构体,结构体中保存着一些运行时的必要信息以及需要执行的指令指针地址。那么我们只要在 native 层将原方法的 ArtMethod 结构体替换成新方法的结构体,那么执行原方法的时候便会执行到新方法的指令ÿ

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值