Android热修复实现原理

Android类加载器进行类加载的时候,会先把所有APK下的.dex文件放入一个Element数组里面,然后通过foreach循环,查找我们要加载的类所在的.dex文件,然后加载该类,之后return出循环。

那么当我们某个类发现BUG之后,我们通过APP网络下载补丁包的方式,将我们重新写的没有BUG的类所生成的.dex文件,下载到APP,然后将该.dex文件通过反射与前面的Element数组的一起生成一个新Element数组。且下载下来的.dex文档在数组首位。

这样,在进行类加载的时候,会优先加载所下载的新的.dex文件,通过此文件找到所需要的类,然后return出for循环,因此之前有BUG的类就不会加载了。这样就实现了所谓的打补丁或者说热修复。!

posted @ 2020-11-21 17:16  金大人的梦  阅读(164)  评论(0编辑  收藏  举报