Android 逆向类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )(代
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )(代相关的知识,希望对你有一定的参考价值。
文章目录
一、android 类加载器
Android 中的 类加载器 ClassLoader 继承结构 如下 :
1、ClassLoader 抽象类
ClassLoader
是抽象类 , 是所有 类加载器 ClassLoader
的父类 ;
2、BootClassLoader
BootClassLoader
是 ClassLoader
子类 , 与 Java 虚拟机中的 BootstrapClassLoader
启动类加载器 作用相同 , 用于加载 Java 核心类库 ;
BootClassLoader
是单例类 , 全局唯一 ;
BootClassLoader
是由 Java 代码实现的 , 这与 JVM 中的 启动类加载器 不同 ;
3、BaseDexClassLoader
加载 Dex 字节码文件的业务逻辑就是在 BaseDexClassLoader
中实现的 ;
BaseDexClassLoader
的
3
3
3 个子类 ,
InMemoryDexClassLoader
PathClassLoader
DexClassLoader
没有实现核心业务逻辑 , 只是调用父类的方法 , 进行不同类型的操作 ;
4、PathClassLoader
PathClassLoader
是 BaseDexClassLoader
子类 , 应用中的类 , 都是由 PathClassLoader
进行加载 ;
Android 系统相关的类 , 如 四大组件类 , Android 自带类 , 都是由 PathClassLoader
加载的 ;
5、DexClassLoader
DexClassLoader
是 BaseDexClassLoader
的子类 , 该类可以加载任意目录下的 DEX 或 JAR 格式的 字节码文件 ;
热修复 就是 加载 SD 卡中的 DEX 文件 , 插件化 也是加载 SD 卡中的 APK 文件中的 DEX 文件 ;
DexClassLoader
在 动态字节码技术 , 热修复 , 插件化 , DEX 加固 等方面使用广泛 ;
5、SecureClassLoader
SecureClassLoader
继承了 ClassLoader
抽象类 , 该类主要实现了一些权限相关的功能 ,
6、URLClassLoader
URLClassLoader
是 SecureClassLoader
的子类 , 其可以使用 url 路径加载 JAR 文件中的类 ;
以上是关于Android 逆向类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )(代的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向类加载器 ClassLoader ( 启动类加载器 | 扩展类加载器 | 应用类加载器 | 类加载的双亲委托机制 )
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段
Android 逆向加壳的 Android 应用启动流程 | 使用反射替换 LoadedApk 中的类加载器流程
Android 逆向加壳的 Android 应用启动流程 | 使用反射替换 LoadedApk 中的类加载器流程
Android 逆向整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | 类加载器构造函数分析 | DexPathList 引入 )
Android 逆向类加载器 ClassLoader ( 类加载时机 | 隐式加载 | 显示加载 | 类加载步骤 | 装载 | 链接 | 初始化 )