Android 热修复原理

Android热修复实现:是基于dex分包方案,和Android虚拟机的类加载器(ClassLodaer)实现的。

当分包之后,会形成一个dex包的有序数组。当需要加载类文件时,ClassLoader会从数组中第一个dex包开始加载,直至找到该类为止。
当多个包中都包含相同类文件时,会取第一个类文件作为返回

热修复是通过将已修复了bug的文件打成dex包(如:patch.dex),并将该补丁包放入dex分包的有序数组的最前面。当加载类文件时,此时的patch.dex中已修复的类文件就取代了dex包相对靠后的原本存在bug的类文件,从而实现了bug修复

优点

无需重新发版
用户无感知修复,无序重新下载

在这里插入图片描述

阿里:AndFix、Dexposed、阿里百川、Sophix
腾讯:微信的Tinker、QQ空间的超级补丁、手机QQ的QFix

美团的Robust、饿了么的Amigo、美丽说蘑菇街的Aceso
其他:RocooFix、Nuwa、AnoleFix

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值