Android体系结构

Android体系结构:Android系统采用分层架构,由高到低总共分为4层。分别是应用程序层、应用程序框架层、核心类库、Linux内核层。 关于各层的简介具体如下:
1. 应用程序层: 应用程序层是一个核心应用程序的集合,所有安装在手机上的应用程序都属于这一层,例如系统自带的联系人程序、短信程序、或者下载的程序等等。
2. 应用程序框架层: 主要提供了构建应用程序的各种API。Android自带的一些核心应用就是使用这些API开发的, 例如活动管理器、通知管理器、内容提供者等,开发者也可以通过这些API来开发应用程序。
3.核心类库: 核心类库中包含了系统库及Android运行环境,其中:
(1)系统库主要是通过C++ /C库来为Android系统提供主要的特性支持例如Webkit库提供了浏览器的内核支持。
(2)Android运行时主要提供一些核心类库,能够允许开发者使用Java语言来编写应用程序。另外, Android运行时库中还包含了Dalvik虚拟机,它使得每一个Android程序运行在独立的进程当中,并且拥有自己的Dalvik实例,相较于Java虚拟机,Dalvik是专门为移动设备制定的,它针对于手机内存、cpu性能做了优化处理。
4.Linux内核层: Linux内核层位位Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、电源管理驱动等。

Dalvik虚拟机:Android应用程序的主要开发语言是Java,它通过Dalvik虚拟机来运行Java程序。Dalvik是Google公司设计用于Android平台的的虚拟机就,其指令集基于寄存器架构,执行其特有的dex文件来完成生命周期的管理、堆栈管理、线程管理、安全异常管理、垃圾回收管理等等重要功能。
每一个Android程序都对应一个Dalvik实例,其代码在虚拟机的解释下如下图所示:
Android体系结构_第1张图片
上图中,Java文件经过jdk编译成class文件后,Dalvik虚拟机中的Dx将部分的class文件转换为dex文件(dex文件中共包含多个类)。dex文件相比.jar文件更加紧凑,但是在运行过程中为了进一步提高性能,dex文件还会进一步优化成odex文件 。
需要注意的是,每个Android程序都运行在一个独立的Dalvik虚拟机实例中,而每一个Dalvik虚拟机案例都是一个独立的进程空间,每个进程之间可以通信。 Dalvik虚拟机的线程机制、内存分配和管理机制都是依赖于底层的操作系统实现的,这里不做详细解释。感兴趣的读者可以自行研究。

你可能感兴趣的:(Android体系结构)