对于Dalvik虚拟机管理说明

移动开发 Android
Android运行库包括两部分:核心库和Dalvik虚拟机,核心库包括了最基本的类库,如data structure, network, Utilities, File system等的。

Dalvik虚拟机还是比较常用的,于是我研究了一下Dalvik虚拟机,在这里拿出来和大家分享一下,希望对大家有用,经过长时间学习Dalvik虚拟机,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。

很多实现代码都是来自Apache Harmony项目,主要目的是保证虚拟机的类库能够和Java SE的类库最大可能的兼容,从而降低应用开发者从Java SE阵营转移到Android开发阵营的难度,增加其可用性。

Dalvik虚拟机主要是完成对象生命周期的管理,堆栈的管理,线程管理,安全和异常的管理,以及垃圾回收等等重要功能。 Dalvik虚拟机的主要特征Dalvik 虚拟机非常适合在移动终端上使用,相对于在桌面系统和服务器系统运行的虚拟机而言,它不需要很快的CPU速度和大量的内存空间。

根据Google的测算,64M的RAM已经能够令系统正常运转了。其中24M被用于底层系统的初始化和启动,另外20M被用于高层启动高层服务。当然,随着系统服务的增多和应用功能的扩展,其所消耗的内存也势必越来越大。 归纳起来,Dalvik虚拟机有如下几个主要特征:

Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable)。
在Java SE程序中的Java类会被编译成一个或者多个字节码文件(.class)然后打包到JAR文件。而后Java虚拟机会从相应的CLASS文件和JAR文件中获取相应的字节码;

Android应用虽然也是使用Java语言进行编程,但是在编译成CLASS文件后,还会通过一个工具(dx)将应用所有的CLASS文件转换成一个DEX文件,而后Dalvik虚拟机会从其中读取指令和数据,Dalvik和Android系统Android作为新一代的基于Linux的开源手机操作系统,其系统架构由下而上可以分为以下几部分: Linux内核 本地库 Android运行库 应用框架应用。

DEX的优化 DEX文件的结构是紧凑的,然是如果我们还想要求运行时的性能有进一步提高,我们就仍然需要对DEX文件进行进一步优化。优化主要是针对以下几个方面:
◆调整所有字段的字节序(LITTLE_ENDIAN)和对齐结构中的没一个域
◆验证DEX文件中的所有类
◆对一些特定的类进行优化,对方法里的操作码进行优化
◆优化后的文件大小会有所增加,应该是原DEX文件的1-4倍。
◆优化发生的时机有两个:对于预置应用,可以在系统编译后,生成优化文件,以ODEX结尾。这样在发布时除APK文件(不包含DEX)以外,还有一个相应的ODEX文件;对于非预置应用,包含在APK文件里的DEX文件会在运行时被优化,优化后的文件将被保存在缓存中。

基于寄存器 相对于基于堆栈的虚拟机实现,基于寄存器的虚拟机实现虽然在硬件通用性上要差一些,但是它在代码的执行效率上却更胜一筹。一般来讲,虚拟机中指令的解释执行时间主要花在以下三个方面:
◆分发指令
◆访问运算数
◆执行运算

【编辑推荐】

  1. Android应用程序组建原理深入剖析
  2. Android SMS短信服务相关概念简述
  3. PythonAndroid数据库相关代码解读
  4. PythonAndroid安装卸载程序具体操作方法解析
  5. Android应用程序的四个关键点
责任编辑:chenqingxiang 来源: 博客园
相关推荐

2010-02-06 17:32:43

Dalvik虚拟机

2010-02-04 10:05:28

Dalvik虚拟机

2023-02-20 14:24:56

AndroidDalvikART

2010-02-04 10:10:34

Dalvik虚拟机

2010-02-06 17:36:58

Dalvik虚拟机

2013-11-11 15:31:32

虚拟机Android Run

2010-02-05 13:44:36

Dalvik虚拟机

2010-02-24 10:07:28

Python虚拟机

2012-05-18 10:22:23

2011-09-07 15:33:33

CocoaiOSObjective-C

2012-05-15 09:31:57

puppet vagrVirtualBox

2014-11-07 10:02:03

虚拟机虚拟机补丁

2013-07-17 09:32:58

2010-07-26 09:02:38

2020-08-03 10:53:25

存储容器虚拟机

2012-12-25 10:47:50

IBMdW

2013-10-28 09:32:47

基础设施即服务IaaS部署虚拟机安全

2022-10-27 08:13:51

管理虚拟机Cockpit

2013-10-28 09:22:14

IaaS部署虚拟机安全虚拟机管理

2012-01-04 09:31:05

虚拟化桌面虚拟化vmware
点赞
收藏

51CTO技术栈公众号