类加载机制
-
ClassLoader 抽象类
-
BootCLassLoader 用于加载Android Frameword层的class文件
-
BaseDexClassLoader 父类
-
PathClassLoader 子类 Android应用程序类加载器
-
DexClassLoader 子类 额外提供的动态类加载器
PathClassLoader loadClass方法
protected Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
synchronized (getClassLoadingLock(name)) {
// First, check if the class has already been loaded
/*第一先判断这个类有没有被加载过
如果加载过,返回该类的Class<?>对象
没有加载过返回 null
*/
Class<?> c = findLoadedClass(name);
//如果这个类没有加载过
if (c == null) {
long t0 = System.nanoTime();
try {
//先看父类加载器可不可以加载,parent == null代表着使用根类加载器加载
if (parent != null) {