没人?我来记一个笔记
编译期:
运行期:
- 判断java.vm.version是否需要dex文件处理
- davilk虚拟机:apk中二级dex文件解压到应用特定目录 -- 得到二级文件列表:SecondaryDexes -- 二级文件列表出入ClassLoader中
- 二级文件注入ClassLoader:首先反射获取PathClassLoader的pathList字段 -- pathList再次反射 -- 获取内部的dexElements字段 -- 为前期解压获取的二级dex文件:classes2.dex、classesN.dex文件生成对应的Elements数组 -- 最后将Elements元素追加到pathList.dexElements的尾部
- 后续需要加载某个类:遍历dexElements数组,挨个查找是否有要找的类。