Android系统架构

上一篇 / 下一篇  2014-07-23 10:55:46 / 个人分类:Android开发基础

从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。

应用程序层:由运行在Android设备上的所有应用共同构成,包括通话、短信、联系人等系统应用,还包括其他后续安装到手机中的第三方应用。这些应用都是基于Java语言开发的。

框架层:从从事Android开发的基础,由多个系统服务组成,包括组件管理服务、窗口管理服务、电源管理服务、通话管理服务等。对于开发者而言,最直观的体现就是SDK,我们可以直接使用其提供的组件来进行应用程序开发,也可以在此基础上通过继承实现个性化扩展。

系统运行库层:由核心类库和Android运行时组成。

1)核心类库:由一系列二进制动态库共同构成,通常使用C/C++进行开发。与框架层的系统服务相比,核心类库不能够独立运行于线程中,而需要被系统服务加载到其进程空间里,通过类库提供的JNI接口调用。核心类库的来源只要有系统原生类库,比如资源文件管理模块、基础算法库等,和第三方类库,比如Webkit、SQlite、OpenGL等等。

2)运行时:和所有Java程序运行平台一样,为了实现Java程序在运行阶段的二次编译,Android为它们提供了运行时的支撑。由Java核心类库和Java虚拟机Dalvik共同构成。Java核心类库涵盖了Android应用层和框架层所要用到的基础Java库,包括Java对象库、文件管理库、网络通信库等。提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,android.osandroid.netandroid.media等等。

Dalvik与J2ME不同,没有采用基于栈的虚拟机架构,而是采取了基于寄存器的虚拟机架构,这样编译出的应用程序可能会占用稍多的存储空间,但是会提高执行效率,并且同时支持多个虚拟机。每个Android应用程序都有一个专有的进程,每个Android应用程序都有一个Dalvik虚拟机实例,并在该实例中执行。Dalvik没有采用传统的.java格式文件,而是新的二进制码格式文件.dex。在Android应用程序的编译过程中会先生成若干个.class文件,然后使用dalvik中特有的指令集OpCodes来转换成一个.dex文件。

Linux核心层:Android是搭建在Linux2.6内核之上的,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。

Android系统架构图中的硬件抽象层,是Android为厂商定义的一套接口标准,它为框架层提供接口支持,厂商需要根据定义的接口实现相应功能。


TAG:

 

评分:0

我来说两句

Open Toolbar