随着时代的进步科技的发展Dalvik虚拟机的版本也快速的提升与升级,下面我就对升级前和升级后的Dalvik虚拟机系统 ,做一下自己的解析Android作为新一代的基于Linux的开源手机操作系统,其系统架构由下而上可以分为以下几部分:
◆Linux内核
◆本地库
◆Android运行库
◆应用框架 应用
如图所示,Android运行库包括两部分:核心库和Dalvik虚拟机。核心库包括了最基本的类库,如data structure, network, Utilities, File system等的。很多实现代码都是来自Apache Harmony 项目,主要目的是保证虚拟机的类库能够和Java SE的类库最大可能的兼容。
从而降低应用开发者从Java SE阵营转移到Android开发阵营的难度,增加其可用性。Dalvik虚拟机主要是完成对象生命周期的管理,堆栈的管理,线程管理,安全和异常的管理,以及垃圾回收等等重要功能。
Dalvik 虚拟机的主要特征 Dalvik虚拟机非常适合在移动终端上使用,相对于在桌面系统和服务器系统运行的虚拟机而言,它不需要很快的CPU速度和大量的内存空间。根据 Google的测算.
64M的RAM已经能够令系统正常运转了。其中24M被用于底层系统的初始化和启动,另外20M被用于高层启动高层服务。当然,随着系统服务的增多和应用功能的扩展,其所消耗的内存也势必越来越大。#t#
归纳起来,Dalvik虚拟机有如下几个主要特征:
1.一个应用中会定义很多类,编译完成后即会有很多相应的CLASS文件,CLASS文件间会有不少冗余的信息;而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。
2.增加了新的操作码的支持
3.文件结构尽量简洁,使用等长的指令,借以提高解析速度
4. 尽量扩大只读结构的大小,借以提高跨进程的数据共享如何生成DEX文件呢?Android系统和Dalvik虚拟机提供了工具(DX),在把Java源代码编译成CLASS文件后,使用DX工具。