Dalvik 和 Java 虚拟机的区别

来源:互联网 发布:闪电邮mac版 编辑:程序博客网 时间:2024/05/18 01:27
  1. 什么是Dalvik VM

    Dalvik虚拟机是google用于移动设备的Android平台的一个核心组成部分,它可以支持已转换为.dex格式的Java应用程序的运行,(dex表示Dalvik Executable,也就是说dex格式是专为Dalvik设计的一种压缩格式),并且每一个Dalvik应用作为一个独立的Linux进程执行。但该运行机制被认为拖慢了安卓系统的运行速度,原因是Dalvik基于寄存器架构,而基于寄存器机器上的指令必须经过编码,所以每次运行都需要编码,导致了安卓系统不如IOS流畅。该机制在安卓4.2之后被ART模式取代(ART:Android Runtime,第一次安装后就将程序转变成机器码,以后省去了转化的过程)
  2. 什么是JVM

    JVM是Java Virtual Machine(Java虚拟机)的缩写,它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行java的字节码程序。
  3. Dalvik 和 Java 虚拟机的区别

    a) dvm 执行的是.dex 文件,而 jvm 执行的是.class。Android 工程编译后的所有.class 字节码会被 dex 工具抽取到一个.dex 文件中。b) dvm 是基于寄存器的虚拟机 而 jvm 执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm 可以根据硬件实现最大的优化,比较适合移动设备。c) .class 文件存在很多的冗余信息,dex 工具会去除冗余信息,并把所有的.class 文件整合到.dex 文件中。减少了 I/O 操作,提高了类的查找速度。
0 0
原创粉丝点击