Dalvik虚拟机

✍ dations ◷ 2025-11-09 03:20:50 #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结尾。

相关

  • 音频录音是指将声音转为模拟讯号或机械记录的过程。数字录音是指将模拟信号经由AD转换器将类比(analogy)取样成数字(digital)记录到数字储存装置再由,数字转换回模拟信号的过程录音的
  • 豹斑毒伞有毒豹斑鹅膏(学名:Amanita pantherina var. pantherina,英文又称panther cap;而又因为与赭盖鹅膏菌相似,称为false blusher),为分布于欧洲与西亚的真菌物种。
  • 2008年被中华人民共和国处决的死刑犯列表旨在列出被中华人民共和国处决的死刑犯。
  • 伊莱·沃勒克德克萨斯州大学奥斯汀分校纽约市立学院 Neighborhood Playhouse School of the Theatre伊莱·沃勒克(英语:Eli Herschel Wallach,1915年12月7日-2014年6月24日)是一名美国电影
  • 林肯遇刺身亡亚伯拉罕·林肯(英语:Abraham Lincoln,i/ˈeɪbrəhæm ˈlɪŋkən/,1809年2月12日-1865年4月15日),第十六任美国总统,1861年3月就任,直至1865年4月遇刺身亡。林肯领导美国经历其历
  • 振兴区振兴区是辽宁省丹东市下辖的一个市辖区。面积109.76平方千米,人口37.24万。邮政编码118002。下辖10个街道办事处、3个镇:
  • 哲学分析哲学分析是西方哲学界在哲学分析传统中涉及“拆解”(例如: 分析)的哲学议题最典型的众多应用技巧的一个通称。其中,几乎无争议地将概念分析视为最卓越的一种技巧。依靠对事物
  • 二十二烷二十二烷(英语:docosane)是含有22个碳原子的直链烷烃,化学式为C22H46或CH3(CH2)20CH3,外观为无色蜡状固体,主要用途为标定气体。可经由反应制备二十二烷醇(CH3(CH2)21OH),可做为化
  • 凯斯鲍尔凯斯鲍尔汽车工程有限公司(德语:Karl Kässbohrer Fahrzeugwerke GmbH)是德国乌尔姆的一间汽车制造商。
  • 鲍里斯·维克托罗维奇·萨温科夫鲍里斯·维克托罗维奇·萨温科夫(俄语:Бори́с Ви́кторович Са́винков,1879年1月19日-1925年5月7日),俄罗斯作家、革命家。作为社会革命党战斗组织的领