android的体系架构和其操作体系相同,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是运用程序层、运用程序结构层、体系运转库层和linux中心层。
1.运用程序
Android会同一系列中心运用程序包一同发布,该运用程序包包含email客户端,SMS短消息程序,日历,地图,浏览器,联系人办理程序等。一切的运用程序都是运用JAVA言语编写的。
2.运用程序结构
开发人员也能够彻底拜访中心运用程序所运用的API结构。该运用程序的架构规划简化了组件的重用;任何一个运用程序都能够发布它的功用块而且任何其它的 运用程序都能够运用其所发布的功用块(不过得遵从结构的安全性约束)。相同,该运用程序重用机制也运用户能够便利的替换程序组件。
隐藏在每个运用后边的是一系列的服务和体系, 其间包含;
* 丰厚而又可扩展的视图(Views),能够用来构建运用程序, 它包含列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 乃至可嵌入的web浏览器。
* 内容供给器(Content Providers)使得运用程序能够拜访另一个运用程序的数据(如联系人数据库), 或许同享它们自己的数据
* 资源办理器(Resource Manager)供给 非代码资源的拜访,如本地字符串,图形,和布局文件( layout files )。
* 告诉办理器 (Notification Manager) 使得运用程序能够在状态栏中显现自定义的提示信息。
* 活动办理器( Activity Manager) 用来办理运用程序生命周期并供给常用的导航回退功用。
有关更多的细节和怎样从头写一个运用程序,请参阅 怎么编写一个 Android 运用程序.
3.体系运转库
1)程序库
Android 包含一些C/C 库,这些库能被Android体系中不同的组件运用。它们经过 Android 运用程序结构为开发者供给服务。以下是一些中心库:
* 体系 C 库 – 一个从 BSD 承继来的规范 C 体系函数库( libc ), 它是专门为根据 embedded linux 的设备定制的。
* 媒体库 – 根据 PacketVideo OpenCORE;该库支撑多种常用的音频、视频格局回放和录制,一起支撑静态图像文件。编码格局包含MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
* Surface Manager – 对显现子体系的办理,而且为多个运用程序提 供了2D和3D图层的无缝交融。
* LibWebCore – 一个最新的web浏览器引擎用,支撑Android浏览器和一个可嵌入的web视图。
* SGL – 底层的2D图形引擎
* 3D libraries – 根据OpenGL ES 1.0 APIs完成;该库能够运用硬件 3D加快(假如可用)或许运用高度优化的3D软加快。
* FreeType -位图(bitmap)和矢量(vector)字体显现。
* SQLite – 一个关于一切运用程序可用,功用微弱的轻型联系型数据库引擎。
2)Android 运转库
Android 包含了一个中心库,该中心库供给了JAVA编程言语中心库的大多数功用。
每一个Android运用程序都在它自己的进程中运转,都具有一个独立的Dalvik虚拟机实例。Dalvik被规划成一个设备能够一起高效地运转多个 虚拟体系。 Dalvik虚拟机履行(.dex)的Dalvik可履行文件,该格局文件针对小内存运用做了优化。一起虚拟机是根据寄存器的,一切的类都经由JAVA编 译器编译,然后经过SDK中 的 “dx” 东西转化成.dex格局由虚拟机履行。
Dalvik虚拟机依赖于linux内核的一些功用,比方线程机制和底层内存办理机制。
4.Linux 内核
Android 的中心体系服务依赖于 Linux 2.6 内核,如安全性,内存办理,进程办理, 网络协议栈和驱动模型。 Linux 内核也一起作为硬件和软件栈之间的笼统层。