全网独家盘点Android热修复方案(含阿里巴巴、美团、腾讯等)

本文介绍了Android热修复的几种方案,包括阿里巴巴的AndFix、美团的Robust和腾讯的Tinker。AndFix以方法为粒度修复,Robust通过字节码插桩实现即时生效,而Tinker使用Dexdiff算法生成差分包实现重启生效。文章还提到了腾讯QZone的Muitidex方案,并对比了各种方案的特点。
摘要由CSDN通过智能技术生成

使用方法:

在需要修复的方法上面,加上@MethodReplace注解,给定参数,class和method,表示 该方法替换为 哪个类的哪个方法。

缺陷:修复粒度为:method. AndFix只能以方法为粒度去修复bug。作用有限,针对大范围的类替换和资源替换,那就无能为力了。

美团 Robust方案


Robust 是 即时生效Java层实现的热修复实现方案.

美团的Robust方案,是参考了谷歌的InstantRun方案(之前在androidStudio里面有这个选项,可以选择打开instant run运行app)的思路而设计出来的。

其主要设计思想就是一句话:编译打包时,在程序的某些方法里面,都插入一段代码(全自动操作):

当 changeQuickRedirect不为空的时候,该方法就会命中 if(changeQuickRedirect!=null),从而执行修复的实现代码。当为空的时候,则正常执行原逻辑。

而平时我们自己编码,只需要加上一个 @modify注解,来标记这个方法需要打补丁包,也就是需要插入上面这个 if(changeQuickRedirect!=null)代码段。 

为什么它可以即时生效?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值