如何在Dalvik虚拟机上执行Android应用程序。

我的android手机中的一个android应用程序是否运行自己的dalvik虚拟机(一个应用程序一个dalvik vm)?

或者我的android手机中的每个应用程序共享同一个单一的dalvik虚拟机? 我的手机是android 2.3。

每个Android应用程序都在自己的进程中运行,并拥有自己的Dalvik虚拟机实例。 已经编写了Dalvik,以便设备可以高效地运行多个虚拟机。

Dalvik虚拟机以Dalvik可执行文件(.dex)格式执行文件,该格式为最小内存占用而优化。

虚拟机是基于注册的,并运行由Java语言编译器编译的类,这些类已经被包含的“dx”工具转换为.dex格式。

还有看什么是Dalvik虚拟机的详细介绍关于DVM。

  1. DVM是专门为android ,它是为了解决battery lifeprocessing powerfree
  2. 我们使用的是DVM而不是Java Virtual Machine(JVM)因为Java,Java工具是免费的,但是JVM并不是免费的,所以来自谷歌的android开发者已经做出了自己的虚拟机,并使其成为免费的
  3. 虚拟机是必需的,因为虚拟机可以帮助您作为虚拟计算机进行debugging ,以便我的应用程序可以以相同的方式运行不同的设备

画报performanceforms:

IMG

只要看看,很容易理解:

.java文件 – 给java编译器 – 生成.class文件。

所有的.class文件 – 给 – dx工具 – 生成单一的dex文件

dex文件 – 给予 – dvm – 生成 – 最终机器码。

最终机器代码 – 给予 – CPU – 执行。

所有apk的基本源代码都是用java语言编写的。 当你build立这个项目时,所有的.java文件都被转换成.class,现在adk的dx工具将所有的.class文件转换为classes.dex文件,并且这个classes.dex文件在dalvik虚拟机上执行。

有关达尔维克虚拟机的更多信息, 请访问 : http ://www.slideshare.net/jserv/understanding-the-dalvik-virtual-machine

Dalvik虚拟机旨在一次运行多个VM。 因此,每个应用程序都在自己的进程中运行,具有由@sahilMahajanMj所说的Dalvik虚拟机的实例。

这个classes.dex文件进一步优化到odex文件并保存在/ dalvik / dalvik-cache中
要了解更多关于odex的信息, 请点击这里

如果你想知道为什么DVM为什么不是JVM 点击这个

Dalvik是每个Android应用程序运行的虚拟机。 通过Dalvik,设备能够通过更好的内存pipe理运行多个虚拟机,因为Dalvik VM是基于寄存器的,因此内存效率高

每个Android应用程序都运行在自己的进程中,并拥有自己的Dalvik VM实例。 首先,Java文件通过java编译器转换为.class文件.class文件被赋予“dx”工具,该工具将其转换为.dex格式.dex文件被提供给DVM以产生机器代码机器代码由CPU执行

.apk文件包含zip格式的.dex文件,可以在Dalvik虚拟机上运行

为什么Dalvik? 1. DVM是为电池寿命,处理能力和免费而build造的2.我们使用的是DVM而不是JVM,因为JVM不是免费的Dalvik VMs在所有移动设备上保持一致性,即一个应用程序将以相同的方式在不同的设备上运行