Jvm,Dalvik和Art区别

2020-03-09  本文已影响0人  QM

JVM Java虚拟机

JVM(Java Virtual Machine)是一种软件实现,执行像物理程序的机器。JVM并是不专为Java所实现运行的,只要其他编程语言的编译器能生成Java字节码,那这个语言也能实现在JVM上运行。因此,JVM通过执行Java bytecode可以使java代码在不改变的情况下在各种硬件之上。

Dalvik 虚拟机

Dalvik虚拟机是基于apache的java虚拟机,并被改进以适应低内存,低处理器速度的移动设备环境。Dalvik虚拟机依赖于Linux内核,实现进程隔离与线程调试管理,安全和异常管理,垃圾回收等重要功能。

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

什么是ART:

ART代表AndroidRuntime,Dalvik是依靠一个Just-In-Time(JIT)编译器去解释字节码,运行时编译后的应用代码都需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。
ART则完全改变了这种做法,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)预编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。
Android4 Dalvik
Android5/6 ART
Android7 ART+Dalvik

Dalvik和JVM的区别

Dalvik与ART的区别

SDK和JDK

参考地址
https://www.jianshu.com/p/59d98244fb52
http://blog.csdn.net/seu_calvin/article/details/52354964

上一篇下一篇

猜你喜欢

热点阅读