Java和Android的ClassLoader原理分析
文章目录
Java中的ClassLoader
类加载器
加载流程
Android中的ClassLoader
Android的ClassLoader的种类
BootClassLoader:加载Android FrameWork层class文件
PathClassLoader:用来加载已经安装的 apk 的 dex文件
DexClassLoader
BaseDexClassLoader
问题:一个app需要至少哪几个ClassLoader能正常运行呢?
BootClassLoader 和 PathClassLoader
Android中ClassLoader的特点
双亲代理模式的特点
类加载的共享功能
类加载的隔离功能
同一个classname、同一个packagename、同一个ClassLoader去加载,满足这三个条件才被认为是同一个类
ClassLoader源码
加载流程:
Android中的动态加载
Android中的动态加载比一般Java程序复杂在哪里?
动态加载难点:
- 有许多组件类需要注册才能使用
- 资源的动态加载很复杂
- android每个版本都有所不同,适配困难
Android程序运行需要一个上下文环境
总结
Android中ClassLoader的种类
Android中的ClassLoader的特点
Android中ClassLoader源码