1.2 Android 平台介绍

   Android平台 是一组面向移动设备的软 件包,它包含了一个操作系统、中间件和关键应用程序。开发人员可以使用Android SDK(软件开发工具包)为这个平台创造应用程序。应用程序使用 Java语言编写并在Dalvik之内运行。Dalvik是一款量身定制的虚拟机,它专为嵌入式 应用设计,运行在Linux内核上 层。 

1.2.1 Android 平台特性

·  应用程序框架    支持组件的复用和更换 

·  Dalvik虚拟 机    专门为移动设备进行过优化 

·  集成的浏览器    基于开源的  WebKit  引擎 

·  优化的图形机制  自定义的2D图形库,基于OpenGL ES 1.0规范的3D图形实现(本项为硬件加速器可选) 

·  SQLite          轻量级的数据库,支持结构化数据的存储 

·  媒体支 持        面向常见的音频、视频以及静态图形档案格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) 

·  GSM 技术 GSM:    global system for mobile communications (依赖硬件支持) 

· 蓝牙 , EDGE, 3G, and WiFi (依 赖硬件支持) 

· 相机 , GPS, 电子罗盘(compass)与加速度计(accelerometer) (依赖硬件支持) 

· 多元的开发环境  包含一套硬件仿真器,一些用于程序调试、内存和性能剖析的工具,以及支持Eclipse集成开发环境的插件( ADT  )。 

1.2.2 Android 平台架构

下方图表显示了Android操 作系统的主要组件。要知道关于各个部分更多的细节,下文还有描述,请继续看。

Android 平台架构

1.2.3 Applications(应用)

Android将预装一组核心应 用程序,包括email客户端、短信服务、日历日程、地图服务、 浏览器、联系人和其他应用程序。所有应用程序都是Java编程语言编写的。 

1.2.4 Application Frameworks(应 用框架)

上文所提的核心应用程序就是依赖 框架层次API开发的,程序员们当然也可以充分使用这些API。 应用架构设计的初衷是:简化组件复用机制;任何应用都能发布自己的功能,这些功能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束)。和 复用机制相同,框架允许组件的更换。 

所有应用都是一组服务和系统,一 般包含: 

·  一套丰富且 可扩展的 视图  组件, 含有lists, grids, text boxes, buttons, 甚至嵌入的网络浏览器 

·  Content Providers  (内容 提供器) 使一个应用可以访问另外一个应用的数据(如联系人),或者使一个应用内部可以共享自身数据 

·  Resource Manager  (资源 管理器),提供对非编码资源——例如本地化字符串、图形和布局文件——的访问通道 

·  Notification Manager  (通告 管理器),使应用在状态栏显示自定义的警报通知。 

·  Activity Manager  (行动 管理器)负责管理应用的生命周期,提供通用导航回退支持

要知道更多细节,了解应用内幕, 请参考教程  《Android 应用编写》  

1.2.5 Libraries(库)

Android包含一套 C/C++库,Android系统的各式组件都在使用。这些功能通过 Android应用框架暴露给开发人员。下面列举一些核心库:

·  System C library - 衍 生于BSD的标准C系统库(libc)实现(注:BSD:Berkeley Software Distribution,伯克利软件套件,是Unix的 衍生系统,1970年代由伯克利加州大学开创),尤其支持嵌入式的基于Linux的设备。 

·  Media Libraries - 媒 体库基于PacketVideo's OpenCORE;媒体库支持很多流行音频和视频格式、静态图形文件(包括 MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG )的播放和录制 

·  Surface Manager - 管 理范围:对子系统显示功能的访问,跨应用的无缝组合2D和2D图形层 

·  LibWebCore - 是 流行的浏览器引擎,可以支持Android浏览器和嵌入应用的WEB视图组件 

·  SGL - 底 层的2D图形引擎 

·  3D libraries - 基 于OpenGL ES 1.0 API的实现; 该类库使用硬件3D加速器(如果硬件支持的话)或者内置的、高度优化的3D软件加速机制。 

·  FreeType - 支 持位图和矢量字体 

·  SQLite - 能 干、轻量级的关系型数据库引擎,面向所有应用 

1.2.6 Android Runtime(Android 运 行时) 

Android的核心类库提供 Java类库所提供的绝大部分功能。 

每个Android应用都运行在 自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了 支持多个虚拟机在同一个设备上高效运行,Dalvik被改写过。 

Dalvik虚拟机执行的是 Dalvik格式的可执行文件(.dex)——该格式经过优化,以降 低内存耗用到最低。Java编译器将Java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik 虚拟机上注册并运行。 

在一些底层功能——比如线程和低 内存管理方面,Dalvik虚拟机是依赖Linux内核的。

1.2.7 Linux Kernel(Linux 内核)

Android依赖 Linux 2.6版,提供核心系统服务:安全、内存管理、进程管理、网络 组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。