Android ClassLoader 简析
ClassLoader 加载机制
ClassLoader 是一个抽象类,它为 Java 虚拟机上运行的进程提供类加载的操作,它定义了类加载器的标准接口,具体加载类的逻辑,以及加载类的路径由其具体子类实现。
ClassLoader 对外提供一个 loadClass
方法,使用时调用此方法并传入符合 java 标准的全类名参数,将会返回一个 Class<?>
对象,通过查看 loadClass
方法的实现可以了解到类加载器的加载机制。
// java.lang.ClassLoader
...
public Class<?> loadClass(String name) throws ClassNotFoundException {
return loadClass(name, false);
}
protected Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException {
// 首先,检查该类是否已经加载
Class<?> c = findLoadedClass(name