返回

在 Android ART 中,类的真实形态和类加载的过程

Android

引言

在 Android 系统中,应用程序的运行离不开虚拟机。虚拟机是负责执行 Java 字节码的软件,它将字节码翻译成机器指令,以便处理器能够执行。Android 系统使用的虚拟机是 ART(Android Runtime),它是 Google 开发的专有虚拟机。

ART 中的类

在 ART 中,类是由 Class 结构体表示的。Class 结构体包含了类的各种信息,包括类的名称、修饰符、字段、方法、父类、接口等。

类的加载过程

当应用程序启动时,ART 会将应用程序的类加载到内存中。类加载过程分为以下几个步骤:

  1. 查找类:ART 会首先在内存中查找类。如果类已经加载过,则直接返回类对象。否则,ART 会在磁盘上查找类文件。
  2. 加载类文件:ART 会从磁盘上加载类文件。类文件是包含类字节码的文件。
  3. 验证类文件:ART 会验证类文件是否符合 Java 虚拟机规范。如果类文件不符合规范,则 ART 会抛出异常。
  4. 准备类:ART 会准备类。准备类是指将类的静态字段初始化为默认值。
  5. 解析类:ART 会解析类。解析类是指将类的符号引用转换为直接引用。
  6. 初始化类:ART 会初始化类。初始化类是指执行类的静态代码块和构造方法。

类的真实形态

在 ART 中,类是由 Class 结构体表示的。Class 结构体包含了类的各种信息,包括类的名称、修饰符、字段、方法、父类、接口等。

类的真实形态是 Class 结构体。Class 结构体是一个复杂的数据结构,它包含了类的各种信息。这些信息包括:

  • 类的名称
  • 类的修饰符
  • 类的字段
  • 类的构造方法
  • 类的静态方法
  • 类的实例方法
  • 类的父类
  • 类的接口

类的加载过程

类的加载过程是将类文件从磁盘加载到内存中的过程。类的加载过程分为以下几个步骤:

  1. 查找类:ART 会首先在内存中查找类。如果类已经加载过,则直接返回类对象。否则,ART 会在磁盘上查找类文件。
  2. 加载类文件:ART 会从磁盘上加载类文件。类文件是包含类字节码的文件。
  3. 验证类文件:ART 会验证类文件是否符合 Java 虚拟机规范。如果类文件不符合规范,则 ART 会抛出异常。
  4. 准备类:ART 会准备类。准备类是指将类的静态字段初始化为默认值。
  5. 解析类:ART 会解析类。解析类是指将类的符号引用转换为直接引用。
  6. 初始化类:ART 会初始化类。初始化类是指执行类的静态代码块和构造方法。

总结

在 Android ART 中,类的真实形态是由 Class 结构体表示的。类的加载过程是将类文件从磁盘加载到内存中的过程。类的加载过程分为以下几个步骤:查找类、加载类文件、验证类文件、准备类、解析类、初始化类。