Dalvik虚拟机

✍ dations ◷ 2024-12-22 19:33:12 #Android,Java虚拟机

Dalvik虚拟机,是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex(即“Dalvik Executable”)格式的Java应用程序的运行。.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik由Dan Bornstein编写的,名字来源于他的祖先曾经居住过的小渔村达尔维克(Dalvík),位于冰岛埃亚峡湾。

大多数虚拟机包括JVM都是一种堆栈机器,而Dalvik虚拟机则是寄存器机。两种架构各有优劣,一般而言,基于堆栈的机器需要更多指令,而基于寄存器的机器指令更长。

从Android 5.0版起,Android Runtime(ART)取代Dalvik成为系统内默认虚拟机。

dx工具是一种用来转换Java class成为DEX格式的工具。多个类被包含在一个dex文件之中。各个类中重复的字符串和其他常量只在DEX中存放一次,以节省空间。Java字节码(bytecode)被转换成Dalvik虚拟机所使用的替代指令集。一个未压缩dex文件通常稍小于一个已经压缩的.jar档。

安装到行动设备之时,Dalvik可执行档可能会被修改。为了获得进一步优化,虚拟机可能会调整文件内部分数据的端序、内联一些函数和简单的结构体、并短路掉一些不必要的操作。

当Android启动时,Dalvik VM监视所有的程序(APK),并且创建依存关系树,为每个程序优化代码并存储在Dalvik缓存中。Dalvik第一次加载后会生成Cache文件,以提供下次快速加载,所以第一次会很慢。

Dalvik解释器采用预先算好的Goto地址,每个指令对内存的访问都在64字节边界上对齐。这样可以节省一个指令后进行查表的时间。为了强化功能, Dalvik还提供了快速翻译器(Fast Interpreter)。

dx是一套工具,可以将Java .class转换成.dex格式。一个dex档通常会有多个.class。由于dex有时必须进行优化,会使文件大小增加1-4倍,以ODEX结尾。

相关

  • 大不列颠与爱尔兰联合王国大不列颠及爱尔兰联合王国(英语:United Kingdom of Great Britain and Ireland)是根据1800年《联合法案》建立的主权国家,该法案合并了大不列颠王国及爱尔兰王国。英国资助了在
  • 搪瓷搪瓷(英语:Enamel),又称.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-outp
  • 嫡长子嫡长子是指一夫一妻多妾制婚姻中,由嫡妻所生之子中年最长者。传统上只有嫡长子享有爵位及宗族继承权。 名称来自《左传·僖公二十四年》:“赵姬请逆盾与其母......以盾为才,固
  • span class=nowrapErClsub3/sub/span氯化铒是一种无机化合物,化学式为ErCl3。它是紫色固体,可用于制备金属铒。氯化铒可以和氢氧化钠反应,生成氢氧化铒:
  • 正义党正义党(西班牙语:Partido Justicialista,缩写为PJ),常被称作庇隆主义党或庇隆主义运动,是阿根廷的一个庇隆主义政党,由胡安·庇隆创立。1946年至1955年,1973年至1976年,1989年至1999
  • 阿克顿阿克顿(英语:Acton)是位于美国加利福尼亚州洛杉矶县的一个人口普查指定地区。阿克顿的座标为34°28′22″N 118°11′01″W / 34.47278°N 118.18361°W / 34.47278; -118.1836
  • 高丽成均馆大学高丽成均馆大学(韩语:고려 성균관 대학교),位于北朝鲜黄海北道开城特级市市东北郊约两公里处,建立于公元1992年9月1日,原名为“开城轻工业专科学院”,升格为轻工业综合大学时改为现
  • 德寿宫德寿宫是朝鲜王朝最后的宫殿,位于大韩民国首尔市,宫内有许多朝鲜早期的欧式建筑。德寿宫最早作为成宗之兄月山大君的宅邸而建。壬辰倭乱时,居住在这里的是月山大君的后代李琉、
  • 夏木阳介夏木阳介(日语:夏木 陽介/なつき ようすけ ,1936年2月27日-2018年1月14日),出生于东京府八王子市(今 东京都八王子市)的日本电影演员,本名为阿久泽有(阿久沢 有)。
  • 奥斯特奖章奥斯特奖章 (英语:Oersted Medal)由美国物理教师协会(英语:American Association of Physics Teachers)于1936年设立,旨在奖励对物理教学有显著贡献者。这一奖项以汉斯·奥斯特的名