Dalvik VM和JVM的比较

来源:互联网 发布:人肉搜索引擎软件 编辑:程序博客网 时间:2024/06/13 22:37

  一转眼大学时间过半,下学期就要学移动平台应用开发了。虽然在移动开发校赛与Android交过手,但还不算理解,所以假期就在“传智”上加深了解一下Android,先从虚拟机入手。
  JVM与DVM的区别还是有的,学过Java肯定对Java虚拟机不陌生,Android同样运行java代码,运行在谷歌公司的Dalvik VM上的。
  之前就很好奇既然都是运行java,那为什么还需要不同的虚拟机呢?这也就是两个的区别所在。


JVM编译后文件格式: .java→.class→.jar     经过jdk javac

JVM基于的架构: 基于栈的架构

Dalvik vm编译后文件格式: .java→.class→.dex→.odex            经过sdk dex

Dalvik vm基于的架构: 基于寄存器的架构


  既然Android有一套自己的DVM虚拟机,那一定比JVM更实用。dvm把所有的.class文件变成一个dex文件,这就像打包一样。学过的操作系统终于感觉有一些用武之处了,在同样的大小的情况下,复制一个文件夹中包含一个文件到磁盘,和复制一个文件夹包含很多子文件到磁盘,那肯定是前者的速度相对更快,原理也就和DVM基于的架构是相似的,寄存器就相当于CPU的内存,JVM基于的栈就相当于内存,所以CPU的速度是优于内存的。这就是我的初步理解。

0 0