热修复的原理

Posted ganchuanpu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了热修复的原理相关的知识,希望对你有一定的参考价值。

我们知道Java虚拟机 —— JVM 是加载类的class文件的,而android虚拟机——Dalvik/ART VM 是加载类的dex文件,

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

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

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

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







以上是关于热修复的原理的主要内容,如果未能解决你的问题,请参考以下文章

Android热修复技术原理详解(最新最全版本)

大厂热修复框架原理解析,Android 热修复框架入门进阶指南

Andfix热修复框架原理及源码解析-上篇

Andfix热修复框架原理及源码解析-下篇

热修复原理与实现详解

腾讯面试合集:热修复连环炮(热修复是什么 有接触过tinker吗,tinker原理是什么)