AndroidRunTime(ART)详解:从Dalvik到ART的演进
"AndroidRunTime介绍,讲解了Android操作系统与ART的关系,虚拟机的概念,包括系统虚拟机和程序虚拟机的差异,以及JavaVM和Dalvik虚拟机的介绍,最后提到了ART虚拟机及其特点。 正文: Android操作系统是全球广泛使用的移动设备操作系统,由Google领导的Android Open Source Project (AOSP) 开发并维护。自Android 5.0 Lollipop开始,系统默认的运行时环境从Dalvik虚拟机切换到了Android RunTime (ART)。这次转变带来了性能的提升和效率的优化。 虚拟机是计算机科学中的一个重要概念,它创建了一个抽象层,使得软件可以在不受物理硬件限制的环境中运行。虚拟机分为两种主要类型:系统虚拟机和程序虚拟机。系统虚拟机可以模拟一个完整的操作系统,允许在其上运行各种操作系统;而程序虚拟机则专注于运行特定类型的程序,比如Java虚拟机(JVM)就是为执行Java字节码而设计的。 JavaVM,全称Java Virtual Machine,是Java平台的关键组件,它解析并执行以Java语言编写的程序,通过堆栈结构进行运算。JVM使得Java程序具备了跨平台的能力,因为任何支持JVM的操作系统都可以运行Java应用。 在Android早期版本中,采用的是Dalvik虚拟机。Dalvik是专为Android设计的,它将Java类文件转换为.dex格式,这种格式更紧凑,适合资源有限的移动设备。Dalvik虚拟机采用了Just-In-Time (JIT) 编译技术,程序在运行时被编译为机器代码,提高了执行效率。 然而,随着Android系统的发展,ART应运而生。ART采用了预编译机制,即Ahead-Of-Time (AOT) 编译,应用程序在安装时就被编译成机器代码,从而在运行时无需额外的JIT编译步骤,减少了启动时间和内存消耗。此外,ART还改进了内存管理和并发性,提高了多线程程序的性能。 在内存管理方面,ART采用了更高效的方式处理对象生命周期,减少垃圾回收的频率和延迟,提升了整体系统响应速度。同时,ART在并发与同步方面也做了优化,确保多个应用程序可以同时运行且互不影响。 总结来说,Android从Dalvik到ART的转变是为了提高系统性能,优化资源利用率,提升用户体验。ART的AOT编译、内存管理和并发性的改进,使得Android应用程序运行更加流畅,同时降低了对设备资源的需求。这对于开发者和用户来说,都是一个显著的进步。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/0a0355ba90384da9b14f4effca534ab5_ppcust.jpg!1)
- 粉丝: 38
- 资源: 725
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)