Android 类加载机制

Android 类加载机制_第1张图片

 1.类加载机制

.java文件不是可执行的文件,需要先编译成.class文件才可以被虚拟机执行。而类加载就是指通过类加载器把.class文件加载到虚拟机的内存空间,具体来说是方法区。类通常是按需加载,即第一次使用该类时才加载。

Java与Android都是把类加载到虚拟机内存中,然后由虚拟机转换成设备可识别的机器码。由于它们使用的虚拟机不同,所以在类加载方面也有所区别。Java的虚拟机是JVM,Android的虚拟机是dalvik/art(5.0以后虚拟机是art,是对dalvik的升级)。Java虚拟机运行的是class文件,而Android 虚拟机运行的是dex文件。dex其实是class文件的集合,是对class文件优化的产物,为了避免出现重复的class。

 

先了解一下Android的运行流程:

①Android程序编译的时候,会将.java文件编译成.class文件;

②生成apk时,将.class文件打包为.dex文件;

③Android程序运行的时候,Android的Dalvik/art虚拟机就加载dex文件,然后加载其中的.class文件到内存中来使用。

 

当需要使用某个类时,虚拟机就会加载它的Class文件,并创建对应的Class对象。将Class文件加载到虚拟机的内存里,这个过程称为类加载。

类加载流程:

一个类被加载到虚拟机内存中需要经历加载、连接、初始化几个过程

你可能感兴趣的:(android)