插件化---类加载(一)
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近在学插件化,看的各种脑阔疼,现在随手写点笔记,方便以后回顾, 有理解不对的地方,请指出 加载类都是通过类加载器ClassLoader来实现的,其实类加载器还有几个,关系就如下 pathClassLoader可以理解为是加载自己写的activity,如TestActivity extends Activity,这时候在TestActivity中onCreat中直接getClassLoader这时候打印出来就是 pathClassLoader DexClassLoader可以理解为是加载系统类的,如android.app.activity下的类 先手绘了张类加载的流程,有点乱,凑活看吧,按照自己理解来画的 这里主要的就是双亲委托机制,好处就是安全,防止重复加载, 首先加载一个类的时候,调用loadClass方法,在loadClass方法中首先调用findloadedclass()方法,从已经加载的类中找,找到就直接返回,找不到就调用parent的loadClass方法,这里的parent不是父类,是上一级的意思,在上一级中依旧是findloadedclass(),通过不断递归,一直找到最上级BootClassLoader,它里面没有findloadedclass后就加载自身的findclass