JVM之类加载机制
Android类加载器

Android类加载器和Java类加载器比较

加载的字节码不同

  • 相同的是,在程序运行时首先把描述类的数据文件(字节码)加载到内存;
  • 不同的是,Android虚拟机运行的是dex字节码,Java虚拟机运行的class字节码。
    (dex字节码:是对class文件优化的产物,不同class文件重复的东西只需保留一份。)

类加载器不同以及类加载器的类体系结构不同

Android类加载器和Java的类加载器的类体系结构不一样:


Java类加载器的体系结构 Android类加载器以及与Java类加载器区别_第1张图片 Android类加载器的体系结构

Android的BootClassLoader和Java的BootStrapClassLoader区别:

  • Android虚拟机中BootClassLoader是ClassLoader内部类,由java代码实现而不是c++实现,是Android平台上所有ClassLoader的最终parent,这个内部类是包内可见,所以我们没法使用。
  • Java虚拟机中BootStrapClassLoader是由原生代码(C++)编写的,负责加载java核心类库(例如rt.jar等) .

Android类加载器和Java的类加载器工作机制是类似的,使用双亲委托机制。

更多相关文章

  1. Android--高效地加载大图片
  2. Android Eclipse JNI 调用 .so文件加载问题
  3. Android DexClassLoader动态加载类文件
  4. Android 中LayoutInflater(布局加载器)源码篇之parseInclude方法
  5. Android 中LayoutInflater(布局加载器)源码篇之rInflate方法
  6. Android 资源加载机制详解
  7. Android项目结构 以及体系结构
  8. Android音频系统之AudioPolicyService的启动及audio_policy.conf

随机推荐

  1. 关于Android短信管理
  2. Android架构分析之基于Android系统的C应
  3. Android如何解析Intent Filter
  4. Android中对媒体的使用
  5. Android开发指南中文版(二)Application Fun
  6. Android线性LinearLayout布局xml属性介绍
  7. Flutter学习笔记(30)--Android原生与Flutte
  8. android adb命令
  9. Android之——史上最简单自定义开关按钮
  10. Android中数据存储——SharedPreferences