定义:Android是一个手机设备的软件栈,由操作系统、中间件和关键应用组成。
特征
应用框架:允许组件的重用和修改。
Dalvik虚拟机:对手机设备优化。
集成的浏览器:基于开源的WebKit引擎的浏览器。
图形优化:由通常的2D图形库驱动;3D图形是基于OpenGL ES 1.0规格说明的(硬件可选的)。
SQLite:结构化的数据存储。
媒体支持:支持一般的音频、视频和图片格式(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)。
蓝牙,GPS,罗盘,GSM技术:(硬件支持的)。
丰富的开发环境:包括虚拟设备,调试工具,存储和行为(performance)配置和eclipse插件。
Android架构
应用:一套核心的应用,用Java编写。
应用框架:开发者可以访问核心框架使用的API。应用框架设计的使组件的重用简单。任何应用都可以发布它自己的功能,并且其他的应用可以使用它,这种机制使得组件可以被用户替换。
所有底层的应用都使用的一套服务和系统,包括:
·View:一套丰富的可扩展的可以被用来构建应用的View,包括列表、网格、文本、按钮和嵌套的浏览器。
·Content Provider:允许应用访问其他应用的应用,或者分享他们的数据。
·Notification Manager:允许所有的应用在状态条显示alerts。
·Activity Manager:管理应用的生命周期并提供了一个回调栈导航。
库
Android包括了一套android系统应用使用的C/C++库,通过android应用框架暴露给开发者,下面给出一些核心库:
·系统C库:
·媒体库:
·界面管理:
·LibWebCore:
·SGL:底层的2D图像引擎。
·3D库:
·FreeType:位图和向量。
·SQLite:一个轻量级的关系型数据库。
Android运行时
每个android都运行在它自己的进程里面,有它自己的DVM实例,Davilk被写成可以有效的运行多个VMs,Davilk VM执行文件是Davilk Executable(.dex)格式的,它优化了存储。VM是基于注册的,通过dx工具运行被java编译器编译且被转换成 .dex 格式的类。
DVM依赖于Linux Kernel的底层功能如线程和低级的存储管理。
Linux Kernel
Android依赖于Linux 2.6版本的核心服务,比如安全、存储管理、进程管理、网络栈和驱动模型。Linux Kernel还是一个硬件和软件之间的抽象层。