您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第1章 Android 概述
Android概述3G智能手机开发1、平台概述3G智能手机开发1.1开放手机联盟OHA•开放手机联盟,OpenHandsetAlliance:是美国Google公司与2007年11月5日宣布组建的一个全球性的联盟组织。•联盟将会支持Google发布的Android手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动系统。•开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。2009年5月,联盟成员数量已经达到了48家。移动手机联盟成员•开放手机联盟成员–电信运营商–半导体芯片商–手机硬件制造商–软件厂商–商品化公司•目的:统一传统的互联网和移动互联网,建立统一的标准。GooglePhoneOHA与Android•OHA是一个软硬件开发者组织,包括Google,NTTDoCoMo,SprintNextel,andHTC…•目标:–缩短开发周期,加速智能移动设备的发展–提供用户更多更好更便宜的服务•由OHA开发的Android™,是第一个完整的、开放的、免费的智能移动开发平台。Android与iPhone•Android与iPhone相比:–Android:支持多平台、多硬件;–iPhone:有限的平台硬件;单一环境,相对容易实现最佳环境。1.2Android发展史•2007年11月5日,开放手机联盟成立•2007年11月12日,谷歌发布AndroidSDK预览版,这是第一个对外公布的AndroidSDK,为发布正式版收集用户反馈1.2Android发展史•2008年4月17日,谷歌举办开发者竞赛•2008年8月28日,谷歌开通AndroidMarket,供Android手机下载需要使用的应用程序•2008年9月23日,发布AndroidSDKv1.0版,这是第一个稳定的SDK版本•2008年10月21日,谷歌开放Android平台的源代码1.2Android发展史•2008年10月22日,第一款Android手机T-MobileG1在美国上市,由中国台湾的宏达电制造•2009年2月,发布AndroidSDKv1.1版1.2Android发展史•2009年2月17日,第二款Android手机T-MobileG2正式发售,仍由中国台湾的宏达电制造•2009年4月15日,发布AndroidSDKv1.5版1.2Android发展史•2009年6月24日,中国台湾的宏达电发布了第三款Android手机HTCHero•2009年9月,发布Android1.6SDK•2010年1月,发布Android2.1SDK•2010年5月,发布Android2.2SDK•2010年12月,发布Android2.3SDK1.2Android发展史•Android国内发展现状–Linux基金会将要在中国大力推广Android–国内基于Android的成功产品越来越多–中国移动、魅族、中兴、华为1.3Android•Android软件系列包括操作系统、中间件和一些关键应用。•Android是基于JAVA的系统,运行在Linux2.6核上。•AndroidSDK提供多种开发所必要的工具与API。特点1•应用框架可以重复使用,其组件也可以更换。•Dalvik虚拟机针对移动设备进行了优化。•优化的图形能力支持2D、3D图形(OpenGLES1.0)。•集成了基于开源WebKit引掣的浏览器。•SQLite作为结构化数据存储。特点2•多媒体支持多种音频、视频格式。•GSMTelephony(hardwaredependent)•支持蓝牙Bluetooth,3G和WiFi•支持照相机、GPS、指南针和加速度仪等传感器硬件。•丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。1.4Android的优势•源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用。•采用了对有限内存、电池和CPU优化过的虚拟机Dalvik,Android的运行速度比想象的要快很多。•运营商(中国移动等)的大力支持,产业链条的热捧。1.4Android的优势•良好的盈利模式(3/7开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。•Android的源代码遵循ApacheV2软件许可,而不是通常的GPLv2许可。有利于商业开发。•具有强大的Linux社区的支持。1.5Android的不足•由于采用了Java作为应用开发语言,目前可用的传统第三方应用还很少,但由于Android是一款完全开源的移动计算平台,相信第三方应用会很快的丰富起来。•Google提供了一套Java核心包(J2SE5,J2SE6)的有限子集,尚不承诺遵守Java任何Java规范,可能会造成Java阵营的进一步分裂。1.5Android的不足•现有应用完善度不太够,需要的开发工作量较大。•基于QEMU开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。•暂不具备PushMail和Office(DataViz、QuickOffice计划近期推出)功能,目前主要面向的是普通消费者用户,对商业用户支持尚弱。1.6系统环境•AndroidSDK所支持的操作系统:–WindowsXP(32-bit)orVista(32-or64-bit)–MacOSX10.4.8orlater(x86only)–Linux(testedonLinuxUbuntuDapperDrake)1.7开发环境•IDE–Eclipse•Eclipseplug-in-ADT•SoftwareDevelopmentKit(SDK)•AndroidEmulator•Debuger2、Android体系结构2.1Android体系结构采用软件堆层的架构,共分为四层2.1Android体系结构•Linux内核–硬件和其他软件堆层之间的一个抽象隔离层–提供安全机制、内存管理、进程管理、网络协议堆栈、和驱动程序等2.1Android体系结构•中间件层由函数库和Android运行时构成–函数库,主要提供一组基于C/C++的函数库–SurfaceManager,支持显示子系统的访问,提供应用程序与2D、3D图像层的平滑连接–MediaFramework,实现音视频的播放和录制功能–SQLite,轻量级的关系数据库引擎–OpenGLES,基于3D图像加速–FreeType,位图与矢量字体渲染–WebKit,Web浏览器引擎–SGL,2D图像引擎–SSL,数据加密与安全传输的函数库–Libc,标准C运行库,Linux系统中底层应用程序开发接口2.1Android体系结构•中间件层–Android运行时•核心库,提供Android系统的特有函数功能和Java语言函数功能•Dalvik虚拟机,实现基于Linux内核的线程管理和底层内存管理2.1Android体系结构•应用程序框架–提供Android平台基本的管理功能和组件重用机制•ActivityManager,管理应用程序的生命周期•WindowsManager,启动应用程序的窗体•ContentProvider,共享私有数据,实现跨进程的数据访问•PackageManager,管理安装在Android系统内的应用程序•TeleghonyManager,管理与拨打和接听电话的相关功能2.1Android体系结构•应用程序框架•ResourceManager,允许应用程序使用非代码资源•LocationManager,管理与地图相关的服务功能•NotificationManager,允许应用程序在状态栏中显示提示信息2.1Android体系结构•应用程序–提供一系列的核心应用程序–包括电子邮件客户端、浏览器、通讯录和日历等3、Android应用程序组件Android应用程序思想•Android应用程序没有统一的入口(例如main()方法),各个应用之间相互独立,并运行在自己的进程中;•根据功能划分为四类核心组件:Activity、Service、BroadcastReceiver、ContentProvider;•组件之间通过Intent导航;•View类显示可视化界面;3.1Activity(活动)•一个活动就是一个用户界面屏幕;•应用程序可以定义一个或多个活动,用来处理程序不同阶段中的任务;•活动是应用程序生命周期的组成部分,每个活动都要保存自己的状态,以便之后还原这些状态;3.2Service(服务)•服务是在后台运行的任务;•Service组件不提供可视界面;•Service通常与一个Activity绑定,实现与用户的交互;•实例:媒体播放器播放背景音乐;3.3BroadcastReceiver•广播接收器组件(BroadcastReceiver);•接收和响应系统广播的消息;•通过Activity与用户交互进行桥接;3.4ContentProvider•内容提供者(ContentProvider);•用于将一个程序的数据通过约定的手段提供给其他程序;•Aandroid应用程序之间相互独立,使用内容提供者是共享全局数据的最佳方式;3.5View(视图)•View是Android中图形用户界面的基类,提供了可视化界面的展示;•Android图形界面展示层次:–上层:Views•View(基本控件,如按钮、单复选框、菜单等)•ViewGroup(布局控件;作为容器的视图)–中层:Window(默认窗体)–底层:Activity3.6Intent(意图)•意图是一种描述具体动作的机制;–动作;–动作对应的数据;•意图用于激活Activity、Service和BroadcastReceiver组件;•例如:请求一个名为“图片浏览器”的Activity和一个制定的文件夹(URL),其意图是启动该图片浏览器程序,显示指定文件夹的图片;3.7Android安全性•安全特性–每个应用程序都在其自己的Linux进程中运行,硬件禁止一个进程访问其他进程的内存;–每个应用程序分配一个用户ID;–某个应用程序创建的任何文件都不能被其他应用程序读写;–在AndroidManifest.xml中使用XML标记为关键操作访问设置权限;3.7Android安全性•常用的权限–INTERNET:访问因特网;–READ_CONTACTS:读用户的联系人数据;–WRITE_CONTACTS:写用户的联系人数据;–RECEIVE_SMS:监视收到的SMS(文本)信息;–ACCESS_COARSE_LOCATION:使用不太精确的位置提供者,如手机基站或wifi;–ACCESS_FINE_LOCATION:使用精确的位置提供者,如GPS;4、Android应用程序管理4.1Aandroid窗口管理•标准Linux、Windows–同时运行多个应用程序,除了当前窗口拥有键盘焦点外,所有程序是平等的;–窗口间自由切换,手动关闭窗口;•Aandroid–只有一个前台应用程序;–可在当前应用程序中打开其他应用程序,或者打开同一应用程序的其他窗口;–应用程序和窗口被系统的活动管理器记录在应用程序栈(applicationstack)中。4.2进程不等于应用程序•用户界面通过一个Activity类实现,每个活动(activity)有其自己的生命周期;•应用程序=活动+Linux进程–一个或多个活动;–Linux进程包含这些活动;•活动的生命周期与进程的生命周期无关;•进程是各种活动可随意使用的一个容器;4.3应用程序生命周期•Android程序中的活动在其生存期处于多种状态(见Android活动的生命周期图);•系统控制活动所处的状态,程序员不能控制活动的状态;•系统通过onXX()方法调用改变状态;•程序员需要在Activity类中重写这些方法;4.3应用程序生命周期Android活动的生命周期图4.3应用程序生命周期•onCreate(Bundle)
本文标题:第1章 Android 概述
链接地址:https://www.777doc.com/doc-3165452 .html