浅谈Android类加载器

一. 概述Android从5.0开始就采用art虚拟机, 该虚拟机有些类似JAVA虚拟机, 程序运行过程也需要通过ClassLoader 将目标类加载到内存.
传统Jvm主要是通过读取class字节码来加载, 而art则是从dex字节码来读取. 这是一种更为优化的方案, 可以将多个.class文件合并成一个classes.dex文件. 下面直接来看看ClassLoader的关系 。
二. 五种类构造器接下来依次看看PathClassLoader,DexClassLoader,BaseDexClassLoader,BootClassLoader,ClassLoader这5个类加载器 。
PathClassLoader和DexClassLoader,它们都继承自BaseDexClassLoader,这两个类有什么区别呢?其实看一下它们的源码注释就一目了然了 。因为代码很少,约等于没有,这里直接贴出它们的源码,其实主要是注释:


    推荐阅读