时常空指针的linds 2015-09-30 03:01 采纳率: 100%
浏览 1458

关于安卓的art和dalvik模式的问题

安息5.0及以上的版本都实现了使用art运行模式,百度上面也有一些答案,但找不到我想要的。art是在安装APP的时候就预编译成机器码,那么这个编译好的机器码是怎么去执行的,直接使用安卓去执行?dalvik模式是用一个虚拟机去执行一个应用,多个应用就会有多个虚拟机出现,art是怎么去替换原有的dalvik模式的。求大神解答

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 09:57
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Android 5.0(API Level 19)及以上版本中,ART(Application-Resident Thread)模式被引入,这是Android系统的一种优化方法,旨在提高应用程序启动速度并降低内存使用。

    当用户安装一个新的应用程序时,Android会将该应用程序转换为ART模式,并且会在后台创建一个新的虚拟进程来运行它。这使得应用程序能够更有效地利用硬件资源,同时减少内存占用。

    ART模式的工作原理如下:

    1. ART首先解析应用程序的Java字节码,生成一个基于JVM的虚拟机。
    2. 虚拟机负责处理应用程序的所有操作,包括线程管理、垃圾回收等。
    3. 在ART模式下,应用程序的执行由一个单独的线程进行,而不是像Dalvik模式下的多线程环境那样共享同一堆栈空间。
    4. ART模式允许开发者通过调用Thread.dumpStack()等API获取当前线程的详细信息,以便更好地理解应用程序的行为。

    总的来说,ART模式的主要目的是提升应用程序的性能,特别是在设备内存有限的情况下。然而,ART模式也带来了一些挑战,例如如何处理不同平台之间的差异(如Android和iOS),以及如何在不同的处理器架构上实现一致的性能。

    评论

报告相同问题?