首页 理论教育 Android系统运行层及体系结构分析

Android系统运行层及体系结构分析

时间:2023-06-30 理论教育 版权反馈
【摘要】:图3-3Android系统体系结构Android应用程序时采用Java语言编写,程序在Android运行时执行,其运行时分为核心库和Dalvik虚拟机两部分。每个Android应用都在自己的进程中运行,该进程也属于某个Dalvik虚拟机的实例。Dalvik被设计成能让设备高效地运行多个虚拟机。虚拟机是基于寄存器的并且运行Java编程语言所编译的类,这些类被内置的dx工具转换为.dex格式。其可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。

Android系统运行层及体系结构分析

Android包括一个核心库的集合,提供Java编程语言核心库中的绝大多数功能。

图3-3 Android系统体系结构

Android应用程序时采用Java语言编写,程序在Android运行时执行,其运行时分为核心库和Dalvik虚拟机两部分。(www.xing528.com)

(1)Core Libraries(核心库):核心库提供Java语言应用程序编程接口(application programming interface,API)中的大多数功能,同时也包含Android的一些核心API,如android.os,android.net,android.media等。

(2)Dalvik VM(Dalvik虚拟机):与J2me程序不同,每个Android应用程序都有专有的进程,并且不是多个程序在一个虚拟机中运行,而是每个Android程序都有Dalvik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并具有进行内存资源使用优化以及支持多个虚拟机的特点。需要注意的是,不同于J2me程序,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。

每个Android应用都在自己的进程中运行,该进程也属于某个Dalvik虚拟机的实例。Dalvik被设计成能让设备高效地运行多个虚拟机。Dalvik虚拟机执行的是.dex结尾的Dalvik可执行文件格式,该格式被优化为最小内存使用。虚拟机是基于寄存器的并且运行Java编程语言所编译的类,这些类被内置的dx工具转换为.dex格式。

Android包含一个核心库的集合,提供大部分在Java编程语言核心库中可用的功能。每个ndroid应用程序是Dalvik虚拟机中的实例,运行在自己的进程中。Dalvik虚拟机设计成在一个设备可以高效地运行多个虚拟机。其可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要较多指令,而基于寄存器的机器指令更多。dx是一套工具,可以将Java.class转换成.dex格式。一个dex文件通常会有多个.class语句。由于dex有时必须进行最佳化,会使文件大小增加1~4倍,并以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈