热修复框架原理

阿里

Andfix -> Hotfix -> Spohix

原理:

第一步:通过解析DexFile文件找到dex文件,然后找到dex文件当中class,通过ClassLoader.loadClass()方法找到对应的class.
第二步:将class中BugMethod中的变量与FixMethod中的变量一一对应起来起到修复的作用.

优点:

实时生效,无需重启应用

缺点:

因为各个手机厂商会修改class中对应的方法,所以适配不友好

使用注解:

注解 + 反射 记录信息 RUNTIME

/

美团

robust

原理:

Robust 热更新系统在一个方法的入口处插入一段跳转代码,当发现某个方法出现 bug 就跳转执行补丁中的代码,略过原有代码的执行,否则执行原有方法体逻辑。
使用到字节码插桩技术

优点:

实时生效,无需重启应用

缺点:

使用注解:

注解 + Class插桩 区分 CLASS
/

腾讯

Tinker

原理:

替换整个class
bsdiff:差分计算,生成区别文件
bspatch:差分合成
APK增量更新,下载patch中的补丁包,手机中的apk+patch=fix

优点:

无需考虑手机厂商适配问题

缺点:

无法实时生效,需要重启应用之后生效(因为要加载类,加载过的来是有缓存的)

使用注解:

注解 + APT SOURCE

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值