第1章Android简介1.1手机操作系统目前手机操作系统主要有六种WindowsMobile由微软公司推出的移动设备操作系统播放音视频、浏览网页、MSN聊天、收发电子邮件硬件配置高、耗电量大、电池续航时间短、硬件成本高PalmOS由3Com公司的PalmComputing开发32位嵌入式操作系统所占的内存小不具备录音和MP3播放功能1.1手机操作系统Symbian由Symbian开发和维护,后被诺基亚收购实时多任务的32位操作系统功耗低、内存占用少、应用界面框架灵活不开放核心代码,但公开API文档Linux由计算机Linux操作系统演变而来开放源代码有一些先天不足1.1手机操作系统iPhoneOS由苹果公司开发的操作系统iPhoneOS的系统构架支持内置加速器Android由谷歌发布的基于Linux的开源手机平台Android的组成第一个完全定制、免费、开放的手机平台使用Java语言开发支持多种硬件设备1.2Android起源1.2.1开放手机联盟开放手机联盟(OpenHandsetAlliance,OHA)由谷歌公司于2007年发起的一个全球性的联盟组织,成立时包含34家联盟成员,现在已经增加到50家联盟组织的目标研发移动设备的新技术,用以大幅削减移动设备开发与推广成本同时通过联盟各个合作方的努力,建立了移动通信领域新的合作环境,促进了创新移动设备的开发,创造了目前移动平台实现的用户体验1.2Android起源1.2.1开放手机联盟开放手机联盟成员电信运营商半导体芯片商手机硬件制造商软件厂商商品化公司1.2Android起源1.2.1开放手机联盟电信运营商:中国移动通信、KDDI(日本)、NTTDoCoMo(日本)、SprintNextel(美国)、T-Mobile(美国)、Telecom(意大利)、中国联通、Softbank(日本)、Telefonica(西班牙)和Vodafone(英国)1.2Android起源1.2.1开放手机联盟半导体芯片商:Audience(美国)、AKM(日本)、ARM(英国)、AtherosCommunications(美国)、Broadcom(美国)、Intel(美国)、Marvell(美国)、nVIDIA(美国)、Qualcomm(美国)、SiRF(美国)、Synaptics(美国)、ST-Ericsson(意大利、法国和瑞典)和TexasInstruments(美国)1.2Android起源1.2.1开放手机联盟手机硬件制造商:Acer(中国台湾)、华硕(中国台湾)、Garmin(中国台湾)、宏达电(中国台湾)、LG(韩国)、三星(韩国)、华为(中国)、摩托罗拉(美国)、索尼爱立信(日本和瑞典)和东芝(日本)1.2Android起源1.2.1开放手机联盟软件厂商:AscenderCorp(美国)、eBay(美国)、谷歌(美国)、LivingImage(日本)、NuanceCommunications(美国)、Myraid(瑞士)、Omron(日本)、PacketVideo(美国)、SkyPop(美国)、Svox(瑞士)和SONiVOX(美国)1.2Android起源1.2.1开放手机联盟商品化公司:AplixCorporation(日本)、NoserEngineering(瑞士)、Borqs(中国)、TAT-TheAstonishing(瑞典)、TelecaAB(瑞典)和WindRiver(美国)1.2Android起源1.2.2Android发展史2007年11月5日,开放手机联盟成立2007年11月12日,谷歌发布AndroidSDK预览版,这是第一个对外公布的AndroidSDK,为发布正式版收集用户反馈1.2Android起源1.2.2Android发展史2008年4月17日,谷歌举办开发者竞赛2008年8月28日,谷歌开通AndroidMarket,供Android手机下载需要使用的应用程序2008年9月23日,发布AndroidSDKv1.0版,这是第一个稳定的SDK版本2008年10月21日,谷歌开放Android平台的源代码1.2Android起源1.2.2Android发展史2008年10月22日,第一款Android手机T-MobileG1在美国上市,由中国台湾的宏达电制造2009年2月,发布AndroidSDKv1.1版1.2Android起源1.2.2Android发展史2009年2月17日,第二款Android手机T-MobileG2正式发售,仍由中国台湾的宏达电制造2009年4月15日,发布AndroidSDKv1.5版1.2Android起源1.2.2Android发展史2009年6月24日,中国台湾的宏达电发布了第三款Android手机HTCHero1.3Android特征提供访问硬件的API函数,简化像摄像头、GPS等硬件的访问过程具有自己的运行时和虚拟机提供丰富的界面控件供使用者之间调用,加快用户界面的开发速度,保证Android平台上程序界面的一致性提供轻量级的进程间通讯机制Intent,使跨进程组件通信和发送系统级广播成为可能提供了Service作为无用户界面,长时间后台运行的组件支持高效、快速的数据存储方式1.4Android体系结构采用软件堆层的架构,共分为四层1.4Android体系结构Linux内核硬件和其他软件堆层之间的一个抽象隔离层提供安全机制、内存管理、进程管理、网络协议堆栈、和驱动程序等1.4Android体系结构中间件层由函数库和Android运行时构成函数库,主要提供一组基于C/C++的函数库SurfaceManager,支持显示子系统的访问,提供应用程序与2D、3D图像层的平滑连接MediaFramework,实现音视频的播放和录制功能SQLite,轻量级的关系数据库引擎OpenGLES,基于3D图像加速FreeType,位图与矢量字体渲染WebKit,Web浏览器引擎SGL,2D图像引擎SSL,数据加密与安全传输的函数库Libc,标准C运行库,Linux系统中底层应用程序开发接口1.4Android体系结构中间件层Android运行时核心库,提供Android系统的特有函数功能和Java语言函数功能Dalvik虚拟机,实现基于Linux内核的线程管理和底层内存管理1.4Android体系结构应用程序框架提供Android平台基本的管理功能和组件重用机制ActivityManager,管理应用程序的生命周期WindowsManager,启动应用程序的窗体ContentProvider,共享私有数据,实现跨进程的数据访问PackageManager,管理安装在Android系统内的应用程序TeleghonyManager,管理与拨打和接听电话的相关功能1.4Android体系结构应用程序框架ResourceManager,允许应用程序使用非代码资源LocationManager,管理与地图相关的服务功能NotificationManager,允许应用程序在状态栏中显示提示信息1.4Android体系结构应用程序提供一系列的核心应用程序包括电子邮件客户端、浏览器、通讯录和日历等