Android 平台大的方面的层次可以划分成三个层次,包括一个操作系统,中间件和应用程序,android 的系统框架图如下:
图中的软件层次自上而下分成4个层次
- 应用程序(Application)
- 用用程序框架(Application Framework)
- 各种类库(Libraries)和android运行时(Adnorid Runtime)
- 操作系统(OS)
一.应用程序(Application)
二.应用程序框架(Application Framework)
- 一组View(UI组件),这些UI组件包括Button(按钮),EidtView(文本框),TextView(标签),List(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。
- Content Providers(内容提供者),听起来有点抽象,通俗的理解Content Provider就是提供一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。
- Resource Manager 顾名思义就是资源管理,android中的资源很多包括图片,用户界面(Layoutxml),字体,颜色,UI组件的Id等等都可以称之为资源,这些丰富的资源,都是通过ResourceManager来统一进行管理。
- NotificationManager(消息通知管理),它在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示。比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。
- ActivityManager(活动管理),Activity管理着应用程序的生命周期,并且控制着应用的导航,扮演控制器的角色。每个Activity类似于Windows应用中的一个wendow。一般的应用都是通过一个个Activity交互构成的。
- Window Manager(窗口管理),管理所有启动的窗口。
- Location Manager(位置管理),用来管理地图服务的相关功能。
- Telephoney Manager(电话管理),用来管理有关的电话的相关功能。
- Package Manager(包管理),管理所有的安装在android系统内的应用程序。
三.库(Libraries)和运行环境(RunTime)
- 系统C库(libc),一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux的设备定制的。
- 媒体库(Media Framework),基于PackeVideoOpenCore,该库支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。编码格式包括:MPEG4、H.264,MP3、AAC、AMR、JPG、PNG。
- Surface Manager 对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。
- WebKit,一个最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图。
- SGL 底层的2D图形引擎。
- OPENGL|ES,基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速。
- FreeType,位图(bitmap)和适量(vector)字图显示支持。
- SQLite,一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。
- Core Libraries 该核心库提供了Java编程语言核心库的大多数功能。
- Dalvik VM, android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。
四、操作系统(OS)linux kernel
- 安全性(Security)。
- 内存管理(Memory Management)
- 进程管理(Process Management)
- 网络堆栈(Network Stack)
- 驱动程序模型(Driver Model)包含以下这些常规的驱动程序:
(1)Display Driver
(2)Keypad Driver
(3)Camera Driver
(4)WiFi Driver
(5)Flash Memory Driver
(6)Audio Driver
(7)Binder(IPC) Driver
(8)Power Management
对android的整体框架有一定的了解后对与理解android的一些机制和应用开发有很大的帮助,只有了解了android框架才能更好的使用android提供的功能和服务。从而使学习android应用开发少走弯路。