Dalvik虚拟机

本文深入探讨了Dalvik虚拟机与标准JVM虚拟机的区别,阐述了Dalvik和Java运行环境之间的差异,并详细解释了Android平台上的class文件、dex文件以及apcap文件类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Dalvik虚拟机和标准Java jVM虚拟机的区别

 

Dalvik基于寄存器,而JVM基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费
的时间更短。

 

2 Dalvik和Java运行环境的区别

 

  Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的
Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.

 

3 相关文件类型

 

 a  class文件--Java编译后的目标文件

 

  不像J2se,java编译成class就可以直接运行,android平台上class文件不能直接在android上运行。由于Google
使用了自己的Dalvik来运行应用,所以这里的class也肯定不能在AndroidDalvik的java环境中运行,android
的class文件实际上只是编译过程中的中间目标文件,需要链接成dex文件后才能在dalvik上运行。

 

b dex文件--android 平台上可执行文件

 

   Android虚拟机Dalvik支持的字节码文件格式Google在新发布的Android平台上使用了自己的Dalvik虚拟机
来定义,这种虚拟机执行的并非Java字节码,而是另一种字节码:dex格式的字节码。在编译Java代码之后,
通过Android平台上的工具可以将Java字节码转换成Dex字节码。虽然Google称Dalvik是为了移动设备定
做的,但是业界很多人认为这是为了规避向sun申请Javalicense。这个DalvikVM针对手机程式/CPU做过最
佳化,可以同时执行许多VM而不会占用太多Resource。

 

c apk文件--android平台上安装文件

 

   Apk是Android安装包的扩展名,一个Android安装包包含了与某个Android应用程序相关的所有文件。apk
文件将AndroidManifest.xml文件、应用程序代码(.dex文件)、资源文件和其他文件打成一个压缩包。一个工
程只能打进一个.apk文件。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值