ART还是Dalvik虚拟的原理是什么,跟安卓运行APK有啥关系

发布时间 2023-11-09 13:22:57作者: 新壳软件

ART(Android Runtime)和Dalvik都是Android操作系统中的应用程序运行环境。它们都是虚拟机,用于在Android设备上执行应用程序代码。APK(Android Package)是Android应用程序的打包格式,包含了应用程序的所有文件,包括应用程序代码、资源和元数据。

Dalvik虚拟机:

  • 原理:Dalvik是一种基于寄存器的虚拟机,它专为Android设计,用来执行DEX(Dalvik Executable)文件,这是一种专门为Dalvik优化的字节码格式。
  • 运行方式:当你启动一个应用程序时,Dalvik虚拟机会将这些DEX文件转换为可以在设备上运行的机器码。在早期的Android版本中,这种转换是即时的(JIT,即时编译)。

ART虚拟机:

  • 原理:ART是Dalvik的后继者,引入了前期(AOT,提前编译)编译。这意味着应用程序的字节码在安装时就被编译成机器码,这样在运行时就不需要再编译,可以提高性能。
  • 运行方式:ART同样使用DEX文件,但它在应用程序安装的时候就将它们编译成机器语言,这样应用程序在启动和运行时速度更快,因为它不需要再进行编译过程。

生活中的比喻:

想象一下你有一本书(APK),但这本书是用一种外星语言(DEX文件)写的。你想读这本书,但你需要一个翻译(虚拟机)来把它翻译成你能理解的语言(机器码)。

  • Dalvik:每次你想读书时,你都需要找到一个翻译来实时翻译每一句话(JIT编译)。这样你可以立即开始阅读,但如果书很长,等待翻译可能会让阅读过程变慢。
  • ART:当这本书第一次到你手上时,你就雇了一个翻译把整本书都翻译成了你的语言,并把它打印出来(AOT编译)。这需要一些时间和劳力,但一旦翻译完成,你就可以随时快速阅读,而不需要等待翻译。

在这个比喻中,即时翻译(Dalvik)允许你更快开始阅读,但可能会让整体阅读速度变慢,而提前翻译(ART)需要更多的初始工作,但最终让阅读过程更加流畅。

 作者:http://xkrj5.com 纯原创首发,转载保留版权!