Android: Java的ClassLoader和Android的ClassLoader的区别
16lz
2021-01-23
他们的不同点:
- 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加载对话框,异步执行代码的封装类
- ImageView属性中android:src和android:background有什么区别
- android 加载图片到gallery
- android中选中,获得焦点的,点击区别
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别