【Android 逆向】类加载器 ClassLoader ( 类加载时机 | 隐式加载 | 显示加载 | 类加载步骤 | 装载 | 链接 | 初始化 )
文章目录
- 一、类加载时机
- 1、隐式加载
- 2、显式加载
- 二、类加载步骤
一、类加载时机
1、隐式加载
类加载 的 隐式加载 , 没有明确的说明加载某个类 , 但是进行了如下操作 :
- 使用
new
关键字 直接 创建类的实例对象 ; - 使用
new
关键字 直接 创建类的 子类 实例对象 ; - 通过 反射方式 创建 类 / 子类 实例对象 ;
- 访问 类的 静态变量 , 对静态变量 进行 读 或者 写 操作 都会触发 隐式加载 ;
- 访问 类的 静态函数 ;
2、显式加载
显式加载 : 明确的说明要加载某个类 ,
- 使用
Class.forName()
加载指定的类 ; - 使用
ClassLoader.loadClass
加载指令的类 ;
二、类加载步骤
参考 【Java 虚拟机原理】Java 类加载过程 ( 加载 | 连接 - 验证 准备 解析 | 初始化 | 使用 | 卸载 ) 博客 ;
类加载步骤 :
- ① 装载 : 加载某个类时 , 首先要 查找 并 导入 Class 字节码文件 ;
- ② 链接 : 该阶段 , 可以分为以下 333 个子阶段 ;
- 验证 : 验证字节码文件是否正确 ;
- 准备 : 为 静态变量 划分内存空间 , 并进行默认值赋值 ;
- 解析 : 将 " 常量池 " 中的 " 符号引用 " 转为 " 直接引用 " ;
- ③ 初始化 : 调用 clinit 函数 , 初始化 静态变量 静态代码块 ;
【Android 逆向】类加载器 ClassLoader ( 类加载时机 | 隐式加载 | 显示加载 | 类加载步骤 | 装载 | 链接 | 初始化 )相关推荐
- 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )
文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...
- 【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )
文章目录 一.Android 类加载器 1.ClassLoader 抽象类 2.BootClassLoader 3.BaseDexClassLoader 4.PathClassLoader 5.Dex ...
- 【Android 逆向】类加载器 ClassLoader ( 启动类加载器 | 扩展类加载器 | 应用类加载器 | 类加载的双亲委托机制 )
文章目录 一.类加载器 二.类加载的双亲委托机制 一.类加载器 Java 虚拟机 ClassLoader 类加载器 : Bootstrap ClassLoader : 启动类加载器 , 该 加载器由 ...
- java classloader详解_Java类加载器(ClassLoader)详解
本文主要讲述Java ClassLoader的工作原理,这为后面将Android App代码热替换或者插件化升级做铺垫 一. 类加载器 ClassLoader即常说的类加载器,其功能是用于从Class ...
- Java虚拟机学习 - 类加载器(ClassLoader)
类加载器 类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中.一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 ...
- java类加载器_类加载器ClassLoader
上篇文章说到,Class类可以通过一个类的全限定名去加载类,那么底层是如何去加载的呢?这就是我们今天要聊的类加载器ClassLoader,其可以通过一个类的全限定名来获取描述此类的二进制字节流,也即是 ...
- 第五章 类加载器ClassLoader源码解析
说明:了解ClassLoader前,先了解 第四章 类加载机制 1.ClassLoader作用 类加载流程的"加载"阶段是由类加载器完成的. 2.类加载器结构 结构:Bootstr ...
- JVM之类加载器ClassLoader
JVM之类加载器ClassLoader 本文目录 JVM简介 类加载器解析 1. JVM简介 ①. JVM是运行在操作系统之上的,它与硬件没有直接的交互 ②. JVM体系结构概览 注: 2. 类装载器 ...
- 类加载器ClassLoader的角色
类加载器ClassLoader的角色
最新文章
- Windows Phone 7 开发之:工具栏
- Orace 数据字典表前缀 解释。
- 关于 jquery select2 多个关键字 模糊查询的解决方法
- 聚类(Clustering):hierarchical clustering 层次聚类及其应用
- 7、JS面向对象编程之继承
- Java 中接口 interface 实例介绍
- 药盒识别/垃圾分类—高精度AI模型训练及边缘部署分享
- linux 0755,linux audit审计(7-1)--读懂audit日志
- VC++实现自定义切换按钮
- 随笔(1)——慢性意识障碍患者的智慧诊疗和远程管理
- 怎样使用BMFont生成fnt字体
- 【DSP】TMS320C64x系列--SPRU871参考手册--中断控制器部分
- 记一次失败的 ThoughtWorks 面试经历
- BCR-ABL融合基因及检测
- 腾讯云公网IP网络带宽收费价格表2023更新
- GeoServer发布OSM地图
- 谢烟客-----Linux的发展史
- 斐波那契数列——输出斐波那契数列的第n项
- eclipse MAVEN插件正确使用方式。
- sockaddr_in和sockaddr区别