今天来看Android中的ClassLoader
当你第一次听说各种ClassLoader的时候,是不是觉得每种ClassLoader都是相互独立的部分,需要的时候调用即可,但是实际在Android系统中,可以看到ClassLoader采用了继承的模式,那么为什么会采用这种继承的模式呢?
首先我们先看继承模式能给我们带来什么?
在上面场景中,继承模式最大的不同就是能够拥有上层父类的方法,那么ClassLoader为什么需要?ClassLoader是用来加载Class的,我想可能的情况有两种:
1. 本层ClassLoader加载不到。
2. 上层已经加载过了。
深入源码,一探究竟:
可以看到本层ClassLoader在找不到class的情况下确实会去找父ClassLoader,于是验证了我们的第二种想法。
至于第一种可能,由于加载class只是给出路径即可,所以并不牵扯到权限问题。