欢迎来到小伟博客
本章主要介绍类加载器,不做热修复整体讲解,后期进行系统讲解更新。
art和dalvik
davlvik:是google开发用于运行在java虚拟机里面的,支持转换为.dex文件运行。
art: 4.4以后引入的开发者选项,AOT字节码编译成机器码运行。会导致安装速度慢,执行效率会变快
4.4之前用的是JIT,事实编译运行,空间小,运行慢
CLASSloader(双亲委托机制)
1.SecureClassLoader (java中用)
2.BaseDexClassLoader(android用)
BootClassLoader(加载系统类)
PathClassLoader(真实文件,系统用,默认保存opt优化odex文件)
InMemoryDexClassLoader(内存中文件即数组,8.0以后出现)
DexClassLoader(我们用,指定保存opt优化odex文件)
总结:类加载最终加载是由C处理
如何进行热修复的?
观看源码找到DexElements里面存储的是 dex数组加载的时候按照顺序加载dex文件,只要把修复的dex插入到数组前面就能进行修复,正常加载是从第一个加载,找到类后不会往下查找。
qq空间热修复:
[添加链接描述](https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a)