9-12

今天来看Android中的ClassLoader

ClassLoader结构图

当你第一次听说各种ClassLoader的时候,是不是觉得每种ClassLoader都是相互独立的部分,需要的时候调用即可,但是实际在Android系统中,可以看到ClassLoader采用了继承的模式,那么为什么会采用这种继承的模式呢?

首先我们先看继承模式能给我们带来什么?

在上面场景中,继承模式最大的不同就是能够拥有上层父类的方法,那么ClassLoader为什么需要?ClassLoader是用来加载Class的,我想可能的情况有两种:

1. 本层ClassLoader加载不到。

2. 上层已经加载过了。

深入源码,一探究竟:


双亲加载模式

可以看到本层ClassLoader在找不到class的情况下确实会去找父ClassLoader,于是验证了我们的第二种想法。

至于第一种可能,由于加载class只是给出路径即可,所以并不牵扯到权限问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容