Android是一种软件协议栈的移动设备,其中包括操作系统,中间件以及关键应用.
Android SDK(Software Development Kit,即软件开发工具包)提供了用Java编程语言在Android平台下开发应用程序必需的工具与API(Application Programming Interface,应用程序编程接口).
Android系统主要由5个部分组成:
- 应用程序层(Application)Android应用程序层包含了一系列的核心程序,如email邮件客户端、SMS程序、日历、地图、联系人和浏览器等。
- 应用程序框架(Application Framework)通过一个开放的开发平台,Android提供给开发者建立极其丰富和创新应用的能力,开发者可以自由地享有硬件设备的以下优势:
- Activity Manager(活动管理器):管理应用的生命周期,并提供一个通用的导航后台.
- Window Manager(窗口管理器):主要是用来管理窗口的一些状态、属性、窗口顺序、消息收集和处理,以及View增加、删除和更新等.
- Content Manager(内容管理器):内容提供者使应用可以访问其他应用数据(比如电话本),或是共享其应用的数据.
- View Manager(视图管理器):提供了一系列丰富且可扩展地视图,可用于创建应用,其视图主要有lists、grids、text boxes、buttons,以及一个嵌入式的web浏览器.
- Package Manager(包管理器):对所有基于加载信息的数据结构的封装,包括安装或卸载应用、查询permission(权限)相关信息、查询Application相关信息(application,activity,receiver,service,provider及相应属性等)、增加或删除permission、清除用户数据、缓存、代码段等.
- Telephony Manager(电话管理器):是一个管理手机通话状态、电话网络信息的服务类.
- Resource Manager(资源管理器):提供访问非代码的资源能力,如本地化字符串,图形和布局文件等.
- Location Manager(位置管理器):是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,如实现GPS定位等.
- Notification Manager(通知管理器):使所有的应用都能在状态栏显示自定义的通知.
- 函数库(Libraries)
- Surface Manager:表面管理器,管理显示子系统,并可以对多个应用程序的2D和3D图层提供无缝整合.
- Media Framework:媒体框架,提供媒体库,并基于PackerVideo的OpenCore,这套媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片.
- SQLite:一个嵌入式的数据库引擎,供所有应用程序使用的、功能强大的轻量级关系数据库.
- OpenGL | ES:开放的图形库接口,它定义了一个跨编程语言、跨平台的编程接口的规范,它主要用于三维图形编程,但实际上二维图形也可以.
- FreeType:位图和向量字体显示.
- WebKit:一个开源的浏览器网页排版引擎,包括WebCore排版引擎和JS排版引擎.
- SGL:底层的2D图形引擎.
- SSL(Secure Sockets Layer):安全套接层,是为网络通信提供安全及数据完整性的一种安全协议.
- libc:标准C系统库.
- Android运行时(Android Runtime):由两部分组成,Android核心库集(Core Libraries)和Dalvik虚拟机(Dalvik Virtual Machine).核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序.
- Linux内核(Linux Kernel):Android系统是建立在Linux 2.6之上,Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务.以下为Linux内核提供的相关的驱动模型:
- Display Driver(显示驱动):常用基于Linux的帧缓冲(Frame Buffer)驱动.
- Camera Driver(照相机驱动):常用基于Linux的V4L(Video for Linux)驱动.
- Flash Memory Driver(Flash内存驱动):基于MTD(Menory Technology Dervice,内存技术设备)的Falsh驱动程序.
- Binder(IPC,进程间通信) Driver:Android一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能
- Keypad Driver(键盘驱动):作为输入设备的键盘驱动.
- Wifi Driver(Wifi 驱动):基于IEEE 802.11(无线局域网标准)标准的驱动程序.
- Audio Driver(音频驱动):常用基于ALSA(Advanced Linux Sound Architecture,高级Linux声音体系)驱动.
- Bluetooth Driver(蓝牙驱动):基于IEEE 802.15.1标准的无线传输技术.
- Power Management(能源管理):提供控制设备电源状态的管理功能.