开发者社区> 问答> 正文

热修复的原理

热修复的原理

展开
收起
请回答1024 2020-04-10 12:45:05 811 0
1 条回答
写回答
取消 提交回答
  • 我们知道Java虚拟机 —— JVM 是加载类的class文件的,而Android虚拟机——Dalvik/ART VM 是加载类的dex文件,

    而他们加载类的时候都需要ClassLoader,ClassLoader有一个子类BaseDexClassLoader,而BaseDexClassLoader下有一个

    数组——DexPathList,是用来存放dex文件,当BaseDexClassLoader通过调用findClass方法时,实际上就是遍历数组,

    找到相应的dex文件,找到,则直接将它return。而热修复的解决方法就是将新的dex添加到该集合中,并且是在旧的dex的前面,

    所以就会优先被取出来并且return返回。

    2020-04-10 12:45:11
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
ReactNative实战优化之路 立即下载
手淘iOS性能优化探索 立即下载
手淘IOS性能优化探索 立即下载