Android: Java的ClassLoader和Android的ClassLoader的区别
16lz
2021-12-04
他们的不同点:
- Java的引导类加载器是由C++编写的,Android中的引导类加载器则是用Java编写的。
- Android的继承关系要比java继承关系更加复杂一些,提供的功能也多。
- 由于android中加载的不再是class文件,因此android中没有ExtClassLoader和AppClassLoader。代替的是PathClassLoader、DexClassLoader.
Java中的ClassLoader:
java中的类加载器主要有2种类型:系统类加载器、自定义类加载器。
其中的系统类加载器:
继承关系图:
类加载器查找Class采用:双亲委托模式。
Android中的ClassLoader:
继承关系图:
JVM虚拟机也是一个重要的内容。
常说的JDK包含了Java语言、Java虚拟机、Java API类库。【JDK是java程序开发的最小环境】
JRE包含了Java API中的Java SE API 子集、Java虚拟机。
了解JVM的执行过程、JVM结构、类加载子系统、生命周期、对象的创建、GC、5大内存模型十分的重要。
具体细节可查阅《深入JVM虚拟机》或阅读源码
ClassLoader的创建流程在Android中可查看Zygote孵化器的创建过程寻找蛛丝马迹。
更多相关文章
- Android(安卓)Studio无法加载API帮助文档问题
- Android(安卓)面试题总结之Android(安卓)基础(五)
- android与javascript交互(Binding JavaScript code to Android(安
- Android加载对话框,异步执行代码的封装类
- android 加载图片到gallery
- android 隐藏标题栏
- Android(安卓)UnitTest FrameWork
- Android(安卓)代码实现应用强制装到手机内存
- Android(安卓)动态加载(四) - 简单demo实现