美文网首页
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