美文网首页
dexClassLoader实现热修复原理

dexClassLoader实现热修复原理

作者: 破晓11 | 来源:发表于2019-05-08 15:06 被阅读0次

android每次启动过程中都是通过jvm来加载dex文件的

dex文件的又来java---class---dex

热修复就是每次在app启动时,加载我们自己的patch.dex文件,不是修复的dex文件

apk中class.dex文件是通过pathClassLoader来加载的

dexclassLoader用来加载sd开上的.jar包和apk文件

dexClassLoader和pathClassLoader是通过基类baseDexclassLoder查找class。通过其内部的DexPathList pathList 来查找的

DexPathList内部有一个Element[] dex数组,通过findClass方法遍历element数组,一旦找到就返回

插入我们自己的dex文件

创建dexClassLoader将我们的dex文件穿进去

通过反射拿到我们dexClassloader中的dexPathList中的element

拿到apk的dexClassLoader使用反射的方式拿到dexPathList中的element

最后将patch中的element和apk中的element合并在一起通过反射修改apk中的element,

相关文章

网友评论

      本文标题:dexClassLoader实现热修复原理

      本文链接:https://www.haomeiwen.com/subject/ukgmoqtx.html