DVM和ART有什么区别?为什么DVM在棒棒糖中被ART正式取代?
自Android Lollipop以来,谷歌已经用ART取代了DVM,因为ART比DVM快。这还有其他原因吗?
自Android Lollipop以来,谷歌已经用ART取代了DVM,因为ART比DVM快。这还有其他原因吗?
ART带来的一些重大性能改进是Dalvik所缺乏的。但每个优点也有一些缺点。我将尝试在这里讨论优点和缺点。
这是迄今为止ART相对于Dalvik的最大优势。老家伙Dalvik使用即时(JIT)方法,其中编译是按需完成的。所有dex文件仅在需要时才转换为其各自的本机表示形式。
但 ART 使用提前 (AOT) 方法,其中 dex 文件在被要求之前进行编译。这本身极大地提高了任何Android设备的性能和电池寿命。
例如
在Dalvik的情况下,每当您触摸应用程序图标以打开它时,必要的dex文件都会转换为其等效的本机代码。仅当此编译完成后,应用才会开始工作。因此,在完成此操作之前,应用没有响应。
此外,每次打开应用程序时,都会重复此过程,浪费CPU周期和宝贵的电池电量。
但是在ART的情况下,每当您安装应用程序时,所有dex文件都会一劳永逸地转换。因此,安装需要一些时间,并且该应用程序比Dalvik占用更多空间,但性能得到了显着提高,电池寿命得到了巧妙的节省。
对于Dalvik,缓存是随着设备运行的时间而构建的,并且按照JIT方法指示的那样使用应用程序。所以启动时间非常快。
但是,对于 ART,缓存是在首次启动期间构建的,因此在 ART 的情况下,启动时间要长得多。有时启动时,您可能会看到“优化应用”对话框。
在ART上运行的应用程序使用的空间远远超过Dalvik。就像Dalvik上的20 MB应用程序一样,在ART上占用超过35 MB。
因此,如果您使用的是低存储设备,那么这对您来说可能是一个巨大的劣势。
如上所述,ART非常快速和流畅。应用程序非常敏捷且响应迅速。Dalvik和ART之间的任何比较,肯定会使ART设备以显着的优势获胜。
ART是所有那些认为iOS比Android更快,更流畅并且电池效率更高的人的答案。
在Android Lolipop中,DVM已被ART取代。因为 DVM 会在您每次启动特定应用时转换字节码。但是ART在安装应用程序时只转换一次。这使得 CPU 执行更容易。ARM 是一种架构。如MIPS,x86等。DVM/ART 在 ARM 上运行。他们俩都无法相互替代。我希望这能消除你的困惑。