- 在 Java 中
.java
源文件会先编译成.classs
字节码文件,然后借由 JVM 虚拟机将.class
字节码加载进内存,最终程序得到运行。其中.class
加载过程就是由类加载器(ClassLoader)
来完成的。 - 而 Android 与 Java 相似,
.java
源文件会先编译成.dex
文件(.class
的集合),然后 Android 虚拟机( ART虚拟机 和 Dalvik虚拟机)将.dex
文件加载进内存,最终程序得到运行。dex
加载过程也是由类加载器(ClassLoader)
完成的。
什么是类加载?
凭借一个类的全限定名得到对应的可以描述该类的二进制字节流,并将这些字节流转化为方法区的某种数据结构,生成一个
java.lang.Class
对象作为方法区这个类各种数据访问入口。这个过程就是类加载。
类加载过程就是由 ClassLoader
来完成的。