技术开发 频道

Dalvik虚拟机简介

  Dalvik虚拟机的主要特征

  Dalvik虚拟机非常适合在移动终端上使用,相对于在桌面系统和服务器系统运行的虚拟机而言,它不需要很快的CPU速度和大量的内存空间。根据 Google的测算,64M的RAM已经能够令系统正常运转了。其中24M被用于底层系统的初始化和启动,另外20M被用于高层启动高层服务。当然,随着系统服务的增多和应用功能的扩展,其所消耗的内存也势必越来越大。

  归纳起来,Dalvik虚拟机有如下几个主要特征:

  • 专有的DEX文件格式

  DEX是Dalvik虚拟机专用的文件格式,而问什么弃用已有的字节码文件(CLASS文件)而采用新的格式呢?

  1.一个应用中会定义很多类,编译完成后即会有很多相应的CLASS文件,CLASS文件间会有不少冗余的信息;而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。

  原来每个类文件中的常量池,在DEX文件中由一个常量池来管理,具体方式如下图:

  图表2

  图表3

  2.增加了新的操作码的支持

  3.文件结构尽量简洁,使用等长的指令,借以提高解析速度

  4. 尽量扩大只读结构的大小,借以提高跨进程的数据共享

  如何生成DEX文件呢?Android系统和Dalvik虚拟机提供了工具(DX),在把Java源代码编译成CLASS文件后,使用DX工具。

  图表4

0
相关文章