返回
在 Android ART 中,类的真实形态和类加载的过程
Android
2023-11-13 00:11:35
引言
在 Android 系统中,应用程序的运行离不开虚拟机。虚拟机是负责执行 Java 字节码的软件,它将字节码翻译成机器指令,以便处理器能够执行。Android 系统使用的虚拟机是 ART(Android Runtime),它是 Google 开发的专有虚拟机。
ART 中的类
在 ART 中,类是由 Class 结构体表示的。Class 结构体包含了类的各种信息,包括类的名称、修饰符、字段、方法、父类、接口等。
类的加载过程
当应用程序启动时,ART 会将应用程序的类加载到内存中。类加载过程分为以下几个步骤:
- 查找类:ART 会首先在内存中查找类。如果类已经加载过,则直接返回类对象。否则,ART 会在磁盘上查找类文件。
- 加载类文件:ART 会从磁盘上加载类文件。类文件是包含类字节码的文件。
- 验证类文件:ART 会验证类文件是否符合 Java 虚拟机规范。如果类文件不符合规范,则 ART 会抛出异常。
- 准备类:ART 会准备类。准备类是指将类的静态字段初始化为默认值。
- 解析类:ART 会解析类。解析类是指将类的符号引用转换为直接引用。
- 初始化类:ART 会初始化类。初始化类是指执行类的静态代码块和构造方法。
类的真实形态
在 ART 中,类是由 Class 结构体表示的。Class 结构体包含了类的各种信息,包括类的名称、修饰符、字段、方法、父类、接口等。
类的真实形态是 Class 结构体。Class 结构体是一个复杂的数据结构,它包含了类的各种信息。这些信息包括:
- 类的名称
- 类的修饰符
- 类的字段
- 类的构造方法
- 类的静态方法
- 类的实例方法
- 类的父类
- 类的接口
类的加载过程
类的加载过程是将类文件从磁盘加载到内存中的过程。类的加载过程分为以下几个步骤:
- 查找类:ART 会首先在内存中查找类。如果类已经加载过,则直接返回类对象。否则,ART 会在磁盘上查找类文件。
- 加载类文件:ART 会从磁盘上加载类文件。类文件是包含类字节码的文件。
- 验证类文件:ART 会验证类文件是否符合 Java 虚拟机规范。如果类文件不符合规范,则 ART 会抛出异常。
- 准备类:ART 会准备类。准备类是指将类的静态字段初始化为默认值。
- 解析类:ART 会解析类。解析类是指将类的符号引用转换为直接引用。
- 初始化类:ART 会初始化类。初始化类是指执行类的静态代码块和构造方法。
总结
在 Android ART 中,类的真实形态是由 Class 结构体表示的。类的加载过程是将类文件从磁盘加载到内存中的过程。类的加载过程分为以下几个步骤:查找类、加载类文件、验证类文件、准备类、解析类、初始化类。