【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )

简介: 【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )

文章目录

一、Android 类加载器

1、ClassLoader 抽象类

2、BootClassLoader

3、BaseDexClassLoader

4、PathClassLoader

5、DexClassLoader

5、SecureClassLoader

6、URLClassLoader





一、Android 类加载器


Android 中的 类加载器 ClassLoader 继承结构 如下 :


image.png



1、ClassLoader 抽象类


ClassLoader 是抽象类 , 是所有 类加载器 ClassLoader 的父类 ;



2、BootClassLoader


BootClassLoader 是 ClassLoader 子类 , 与 Java 虚拟机中的 BootstrapClassLoader 启动类加载器 作用相同 , 用于加载 Java 核心类库 ;


BootClassLoader 是单例类 , 全局唯一 ;


BootClassLoader 是由 Java 代码实现的 , 这与 JVM 中的 启动类加载器 不同 ;



3、BaseDexClassLoader


加载 Dex 字节码文件的业务逻辑就是在 BaseDexClassLoader 中实现的 ;


BaseDexClassLoader 的 3 33 个子类 ,


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 文件中的类 ;


目录
相关文章
|
XML 存储 数据库
Android 逆向笔记 —— ARSC 文件格式解析
Android 逆向笔记 —— ARSC 文件格式解析
Android 逆向笔记 —— ARSC 文件格式解析
|
Android开发
Android Studio编译JNI时指定CPU种类
Android Studio编译JNI时指定CPU种类
129 0
|
存储 前端开发 Java
Android ClassLoader 源码阅读
Android ClassLoader 源码阅读
|
存储 Android开发 索引
Android逆向:resource.arsc文件解析(Config List)
resource.arsc是APK打包过程中生成一个重要的文件,主要存储了整个应用哦中的资源索引。但是这个文件是一个二进制文件,并不可读,所以本文就通过解析它的二进制内容来读懂这个文件。
738 0
|
存储 Java 编译器
Android逆向之--------常见Davlik字节码解释
Android逆向之--------常见Davlik字节码解释
150 0
Android逆向之--------常见Davlik字节码解释
|
安全 Android开发
Android逆向之--------常用软件安装
Android逆向之--------常用软件安装
174 0
Android逆向之--------常用软件安装
|
XML Android开发 数据格式
Android逆向:二进制xml文件解析(Start Tag Chunk)
在Android中,xml文件经过编译后都是不可读的二进制文件。今天我们来解析一下这个二进制文件的内容,看看如何与我们的源码进行对应。
515 0
|
存储 缓存 Oracle
Android 逆向笔记 —— 说说 Dalvik 及其指令集
Android 逆向笔记 —— 说说 Dalvik 及其指令集
Android 逆向笔记 —— 说说 Dalvik 及其指令集
|
Java Android开发 Python
Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
|
Android开发 索引
是时候来一波逆向技术分析了之Android Resources.arsc
近日,我国在中国文昌航天发射场,用长征五号遥四运载火箭成功发射首次火星探测任务天问一号探测器,火箭飞行约2167秒后,成功将探测器送入预定轨道,开启火星探测之旅,迈出了我国行星探测第一步
是时候来一波逆向技术分析了之Android Resources.arsc