Jvm、Dalvik和Art

作者: 奔跑吧李博 | 来源:发表于2020-09-03 10:58 被阅读0次
    Dalvik:

    Dalvik是Google公司自己设计用于Android平台的虚拟机。它可以支持已转换为** .dex格式**的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式。每一个Dalvik 应用作为一个独立的Linux 进程执行。

    ART (Android Runtime)

    ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。

    ART优缺点:

    优点:
    1、系统性能的显著提升。
    2、应用启动更快、运行更快、体验更流畅、触感反馈更及时。
    3、更长的电池续航能力。
    4、支持更低的硬件。
    缺点:
    1.机器码占用的存储空间更大,字节码变为机器码之后,可能会增加10%-20%(不过在应用包中,可执行的代码常常只是一部分。比如最新的 Google+ APK 是 28.3 MB,但是代码只有 6.9 MB。)
    2.应用的安装时间会变长。

    Jvm、Dalvik和Art对比
    java虚拟机 Dalvik虚拟机
    java虚拟机基于栈,基于栈的机器必须使用指令来载入和操作栈上数据 Dalvik虚拟机基于寄存器
    java虚拟机运行的是java字节码。(java类会被编译成一个或多个字节码.class文件,打包到.jar文件中,java虚拟机从相应的.class文件和.jar获取相应的字节码) Dalvik运行的是自己专属的.dex字节码格式。(java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据)
    - 一个应用对应一个Diavik虚拟机实例,独立运行

    相关文章

      网友评论

        本文标题:Jvm、Dalvik和Art

        本文链接:https://www.haomeiwen.com/subject/jfsgaftx.html