`
jiagou
  • 浏览: 2525884 次
文章分类
社区版块
存档分类
最新评论

Android虚拟机Dalvik

 
阅读更多

Android 平台的基础——Dalvik 虚拟机。

Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时Dalvik虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 "dx" 工具转化成.dex格式由Dalvik虚拟机执行。

Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。


Dalvik和标准Java虚拟机(JVM)首要差别

Dalvik 基于寄存器,而JVM 基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费
的时间更短。


Dalvik和Java运行环境的区别

(1)Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的
Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.

(2)Java运行环境(Java Runtime Environment)包括以下两个部分:

java虚拟机:为了实现一次编译到处可以运行的原则,java在编译连接以后并没有产生目标机器语言,而是采用了Java bytecode这种Java共用指令,这时就需要一个虚拟机来执行改指令。

库:跟我们常用的C语言一样提供一些常用的库

Android使用的虚拟机叫 Dalvik,最初并是不为Java设计的,它并不能运行Java bytecode指令,而是运行叫Dalvik executable,简称dx。为此Android SDK提供了dx工具,用来将Java bytecode转换为dx。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics