美文网首页
art和Dalvik

art和Dalvik

作者: 蒸汽飞船 | 来源:发表于2018-07-10 23:22 被阅读12次

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

ART 引入了预先编译机制,可提高应用的性能。ART 还具有比 Dalvik 更严格的安装时验证。
在安装时,ART 使用设备自带的 dex2oat 工具来编译应用。

1.垃圾回收方面的优化

2.开发和调试方面的优化
-traceview更精确
-.ART 支持许多新的调试选项,特别是与监控和垃圾回收相关的功能
3.优化了异常和崩溃报告中的诊断详细信息,提供更详细的诊断信息

ART优点:

  1. 系统性能的显著提升
  2. 应用启动更快、运行更快、体验更流畅、触感反馈更及时
  3. 更长的电池续航能力
  4. 支持更低的硬件

ART缺点:

  1. 更大的存储空间占用,可能会增加10%-20%
  2. 更长的应用安装时间

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

什么是ART:ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time(JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。ART则完全改变了这套做法,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

ART 支持许多新的调试选项,特别是与监控和垃圾回收相关的功能。例如,您可以:

  • 查看堆栈跟踪中保留了哪些锁,然后跳转到持有锁的线程。
  • 询问指定类的当前活动的实例数、请求查看实例,以及查看使对象保持有效状态的参考。
  • 过滤特定实例的事件(如断点)。
  • 查看方法退出(使用“method-exit”事件)时返回的值。
  • 设置字段观察点,以在访问和/或修改特定字段时暂停程序执行。

相关文章

  • ART、Dalvik、JIT、AOT等相关概念

    一、ART、Dalvik、JIT、AOT Dalvik、ART(Android Runtime):Android ...

  • dex-oat的小知识

    Dalvik-ART-OAT ART兼容Dalvik.也就是说ART 能运行”dex”(Dalvik执行文件).因...

  • Android运行时的几个概念解释

    ART、JIT、AOT、Dalvik之间有什么关系? Dalvik与ART的区别 什么是Dalvik? Dalvi...

  • art和Dalvik

    Dalvik是依靠一个Just-In-Time(JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释...

  • Dalvik和ART

    什么是Dalvik? Dalvik是Google公司自己设计用于Android平台的虚拟机。Dalvik虚拟机是G...

  • Dalvik和ART

    Android 5.0 在系统性能提升方面也做了相当大的努力,首先是 ART 彻底代替了 Dalivk虚拟机,同时...

  • dalvik和art

    dalvik 在Android 4.4包括4.4以前都是使用的dalvik虚拟机(4.4的时候放出了art的测试版...

  • ART和Dalvik

    Dalvik是Android的核心组成部分之一,Android上的应用程序需要依靠它才可以正常运行。现在Googl...

  • Dalvik 和 ART

    Java 虚拟机在前面的系列文章中有所介绍(https://www.jianshu.com/c/84fea797b...

  • ClassLoader 类加载和双亲委托机制

    了解Dalvik和ART 什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Jav...

网友评论

      本文标题:art和Dalvik

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