Android 系统综述_第1页
Android 系统综述_第2页
Android 系统综述_第3页
Android 系统综述_第4页
Android 系统综述_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AndroidAndroid 系统综述系统综述 目目 录录 目 录 2 1 Android 的发展状况 3 1 1 Android 项目的起源与发展 3 1 2 Android 系统的产品化 3 1 3 Android 与其它手机操作系统的竞争现状 4 1 3 1 Android 与其它基于 Linux 的智能机系统 4 1 3 2 Android 与其它智能机系统 4 2 Android 的架构 5 2 1 Android 系统的功能特性 5 2 2 Android 的架构 6 2 2 1 应用程序 6 2 2 2 应用程序框架 6 2 2 3 库 6 2 2 4 Android 运行时 Android Runtime 7 2 2 5 Linux 内核 7 2 3 Dalvik 虚拟机 8 2 4 架构与许可证之间的关系 8 3 Android 上的应用程序 9 3 1Android 应用程序特点 9 3 2Android 的应用程序开发现状 10 3 2 1Android Market 与 iPhone App Store 10 3 2 2Android 上的应用程序开发概要 12 4 Android 在中国的现状 14 4 1 Android 系统在中国的市场推广 14 4 2 国内 Android 开发者的现状 15 1 Android 的发展状况的发展状况 1 1 Android 项目的起源与发展项目的起源与发展 Android 项目起源于 Google 的一次收购 2005 年 8 月 Google 发起了一次 并不起眼的收购 一家名为 Android 的 成立才 22 个月的公司被 Google 收入 囊中 公司中的员工也大多进入了 Google 工作 进入 Google 之后 Andy Rubin 带领开发人员开发出了基于 Linux 内核的 Android 系统 2007 年 11 月 5 日 Google 宣布与其它 33 家手机制造商 包含摩托罗拉 宏 达电 三星 LG 手机芯片供货商 软硬件供货商 电信运营商联合组成开 放手机联盟 Open Handset Alliance 发布了 Android 开放手机软硬件平台 参 与开放手机联盟的这些厂商 都会基于 Android 平台 来开发新的手机业务 Android 向手机厂商和手机运营商提供一个开放的平台 供它们开发创新性的应 用软件 Android 系统保持着相当高的升级频率 显示了相当的活跃性 到 目前为止 已经推出了十余个升级版本 其中重要的版本升级有以下几个 Android 1 0 它发布于 2008 年 9 月 23 日 世界上第一款 Android 智能机 HTC G1 就是采用的这一版本的系统 可以通过刷 ROM 升级到某些后续版本 Android 1 5 代号 Cupcake 发布于 2009 年 4 月 30 日 它基于 Linux 2 6 27 内核 Android 1 6 代号 Donut 发布于 2009 年 9 月 15 日 它与 1 5 使用了同 样的 Linux 内核 对上层的应用进行了一些升级 这是目前使用最广泛的 Android 系统 Android 2 0 代号 Eclair 发布于 2009 年 10 月 26 日 它基于 Linux 2 6 29 在这一个版本中 首次引入了多点触控的特性 Android 2 1 发布于 2010 年 1 月 5 日 这是目前最新的 Android 版本 功 能更为强大 目前只有 Google Nexus One 摩托罗拉 Milestone 等极少数最新配 置的手机才采用该系统 Android 系统各个版本的命名规律很有特色 全都是甜点的名字 并按首字 母 C D E F 的顺序排列 下一个 Android 的版本将会被命名为 Froyo 冻酸奶 基 于 Linux Kernel 2 6 32 Froyo 之后的版本的 Android 将会命名为 Gingerbread 姜饼 基于 Linux Kernel 2 6 33 34 1 2 Android 系统的产品化系统的产品化 由于 Android 系统在设计之初就为可移植性作了充分的考虑 因此 采用 Android 系统的各种设备正越来越多地涌现 在手机市场上 三星 HTC 摩托罗拉 LG 等厂商均是 Android 的支持者 Android 系统定位于硬件配置较高的智能机 智能机市场的不断扩大正好给了 Android 在手机上更大的发展空间 根据 Gartner 的调查报告 2009 年智能手机 销量达到 12 亿 1100 万部 同比增长了 23 8 在这样的大背景下 Andriod 系 统智能机也大举抢占市场 占有率由 2008 年的 0 5 猛增到 2009 年的 3 9 可谓欣欣向荣 2008 年 9 月 T mobile 发布了首款 Android 系统手机 HTC Dream G1 这 款手机具备多种特性 包括对 3G 网络的支持 电容屏全触摸操作 侧滑全键 盘便捷输入方式 紧密的网络应用 无缝捆绑 Google 服务以及强大的的可扩展 性等 随后 HTC 又推出了 G2 G3 等系列机型 而 Google 也于 2010 年 1 月 5 日推出了首款自有机型 Nexus One 强悍的配置令人侧目 被人视为 Google 对苹果的 iPhone 发出了直接挑战 一度陷入困境的摩托罗拉也一口气连续推出 多款 Android 机型 其中 Droid 销量非常惊人 前 74 天销量就达到了 105 万部 甚至超过了 iPhone Google CEO 施密特今年 2 月表示 采用 Android 系统的手 机每日的出货量已经达到 6 万台 除了手机 在最近兴起的上网本和电子书阅读器上 以及传统的多媒体播 放器中也出现了 Android 的身影 国内的 oppo 公司推出了基于 Android 系统的 电子书阅读器 Enjoy 华为则推出了基于 Android 的平板电脑 著名的 Mp4 播 放器厂商法国爱可视也基于 Android 开发了数款 Mp4 在各种平台上 Android 都展现了其强大的生命力 1 3 Android 与其它手机操作系统的竞争现状与其它手机操作系统的竞争现状 1 3 1 Android 与其它基于 Linux 的智能机系统 由于 Linux 的开放性 在 Android 之前 就已经有许多组织推出了基于 Linux 的智能手机系统 其中最著名的当数 Maemo 和 LiMo Maemo 是一个基于 Debian Linux 的系统 它由诺基亚开发 用以弥补日渐 衰微的 Symbian 系统 目前它所获得的支持还较少 仅仅有诺基亚推出了 N900 等少数几款终端 20010 年 2 月 诺基亚宣布将 Maemo 和英特尔的 Moblin 计 划结合 推出 MeeGo 其前景如何 还有待观察 LiMo 是由 LiMo 基金会推出的一个手机平台 LiMo 基金会同是由摩托罗拉 NEC 沃达丰等制造商和运营商于 2007 年联合组建的 发展前景也被人看好 不过 LiMo 平台没有像 Android 一样的 App Market 其应用软件数量较 Android 要少 1 3 2 Android 与其它智能机系统 Android 的开放性对于原先都是闭源的商业操作系统来说是巨大的挑战 在 Android 推出之前 智能手机系统最主要由 Symbian RIM iPhone OS Windows Mobile 这四家把持 这四家均是封闭的 2010 年 2 月 Symbian 宣布将逐步开 放源代码 预计在一季度末将整个 Symbian 平台全部开放 这与 Android 在 2009 年的迅猛发展不无关系 根据 Gartner 的统计数据 在 2009 年 Android 的市场占有率狂增 7 倍 下图就是 Gartner 对各个系统市场占有率的统计结果 2 Android 的架构的架构 2 1 Android 系统的功能特性系统的功能特性 在硬件的支持下 Android 系统拥有以下功能特性 1 有一套应用程序框架 支持各个组件的利用和替换 2 基于 Dalvik 虚拟机 专为移动设备上的 Java 运行作优化 3 内置基于 Webkit 引擎的浏览器 4 拥有优化的图形处理机制 包括可自定义的 2D 图形库和 3D 图形库 并且可选开启硬件加速 5 可用 SQLite 存储结构化数据 6 支持常见的音频 视频以及图片格式 如 MPEG4 H 264 MP3 AAC AMR JPG PNG GIF 7 支持 GSM 协议 8 支持蓝牙 EDGE 3G 以及 WIFI 9 支持摄像头 GPS 电子罗盘以及加速度感应 10 拥有完善的开发环境 包括模拟器 调试工具 性能分析工具以及 Eclipse 插件 2 2 Android 的架构的架构 下图是 Android 官方给出的架构图 从图中我们可以看到 Android 系统可 分为五个部分 下文中将详细介绍各个部分 2 2 1 应用程序 Android 系统内置一套核心应用程序 如联系薄 电话程序 短消息程序 日历 地图等 这些应用都是用 Java 语言开发的 此外 开发人员还可以使用 Android 的 SDK 开发各种各样的应用程序运行在这一层上 2 2 2 应用程序框架 Android 的这一套应用程序框架主要优点就是增强了复用性 在程序框架安全机制的约束下 开发人员可以发布自己的组件 也可以使 用其它应用程序中的组件 例如假设我们开发的一个音乐播放器中有一个播放 列表的组件 那么在另外一个视频播放器中 就可以直接调用这一个播放列表 组件 这一特性在随后的应用开发一章中我们还将详细介绍 应用程序都运行于应用程序框架之上 一般情况下 应用程序会用到以下 Android 自带的组件 1 View 组件 Android 中的 View 组件种类繁多而且可扩展性强 类似于 HTML 中的各种标签 可以提供各种视图元素 如列表 输入框 按钮 内嵌 的浏览器等 2 Content Provider 通过 Content Provider 应用程序可以把自己的数据共享 给别的应用程序 也可以使用其它程序共享出来的数据 3 Resource Manager 通过它 应用程序就能访问各种资源 如图片 布局 文件 字符串资源等 4 Notification Manager 它负责向为应用程序向发户发出通知 通知的方式 有许多种 如在窗口中的状态栏显示 振动手机 发出响铃等 5 Activity Manager 它管理应用程序的生命周期 处理程序的启动 退出 运行等状态 2 2 3 库 Android 包含一套 C C 库 可以为 Android 程序提供各种功能 这些功能 通过 Android 应用程序框架暴露给上层的开发人员 常用的核心的库有下面这 一些 1 System C library 这是一个专门为嵌入式的基于 Linux 的设备优化过的 标准 C 库 2 Media Libraries Android 内的多媒体库基于 OpenCORE 支持多种流行 的音频和视频格式和静态图形文件格式 包括 MPEG4 H 264 MP3 AAC AMR JPG and PNG 的播放和录制 3 LibWebCore 这是一个流行的浏览器引擎 Android 的浏览器和嵌入到 应用程序中的 Web View 都是由它驱动的 4 SGL 底层的2D 图形引擎 5 3D libraries 它基于 OpenGL ES 1 0 API 实现 如果硬件支持的话 它 可以使用硬件3D 加速 即使没有硬件支持 它也可以使用内置的 高度优 化的3D 软件加速 6 FreeType 这是一个使用十分广泛的开源位图和矢量字体渲染库 7 SQLite SQLite 是一个使用越来越广泛的轻量级开源数据库引擎 在嵌 入式设备上运用十分广泛 Android 程序可以使用 SQLite 来存储结构化的数 据 2 2 4 Android 运行时 Android Runtime Android 的运行时实际上包括核心类库和 Dalvik 虚拟机两部分 核心类库包 括了最基本的类库 如 data structure network Utilities File system 等的 很多实 现代码都是来自 Apache Harmony 项目 主要目的是保证虚拟机的类库能够和 Java SE 的类库最大可能的兼容 从而降低应用开发者从 Java SE 阵营转移到 Android 开发阵营的难度 增加其可用性 Dalvik 虚拟机主要是完成对象生命周期的管理 堆栈的管理 线程管理 安全和异常的管理 以及垃圾回收等等重要功能 在 Android 中 每一个应用 程序的进程都会运行在一个独立的 Dalvik 虚拟机中 Dalvik 是 Android 系统的 一个关键部件 开发人员为其作了大量有针对性的优化工作 从而保障了 Android 系统的运行效率 鉴于 Dalvik 虚拟机的重要性 下文我们还将详细介 绍 Dalvik 2 2 5 Linux 内核 Android 的许多核心系统服务都建立在 Linux 之上 例如内存管理 进程调 度 网络协议栈 安全管理以及驱动程序 如 WiFi 设备驱动 闪存驱动 键盘 驱动 摄像头驱动等 Dalvik 虚拟机就直接依赖下层的 Linux 内核来实现线程 管理 低级内存管理这些功能 同时 Linux 内核还负责把下层的硬件抽象出来 形成一个硬件抽象层 为 上层的软件提供了一套与硬件无关的接口 也正是因为这样 Android 才得以充 分利用 Linux 的易移植性实现了它跨平台的目标 但是同时 GNU Linux 里的许 多功能 Android 都没有支持 包括 Cairo X11 Alsa FFmpeg GTK Pango Glibc 等都移除掉了 而且 Android 还以 bionic 取代 Glibc 以 Skia 替换了 Cairo FFmpeg 也被换成了 opencore 2 3 Dalvik 虚拟机虚拟机 Dalvik 是 Android 系统的一个关键组件 对它的深入了解有助于我们理解 Android 开发者构思整个系统的思路 Dalvik 是由 Dan Bornstein 为 Google 开发的 这个名字也是他的祖先曾经居 住过的一个村庄的名字 作为 Android 系统中的 Java 虚拟机 Dalvik 很好地解 决了版权问题和性能问题 众所周知 Java 是 Sun 公司 现已被 Oracle 收购 推出的产业产品 并未 开放源代码 Google 为了打造一个开放的 Android 决定自行开发 Java 虚拟机 绕过 Sun 的 J2ME 平台 于是才有了 Dalvik Dalvik 相比于普通的 Java 虚拟机作了许多的优化工作 它采用了基于寄存 器的架构 经过优化后 可以在限的内存中同时运行多个虚拟机的实例 并且 每一个 Dalvik 应用作为一个独立的 Linux 进程执行 独立的进程可以防止在 虚拟机崩溃的时候所有程序都被关闭 根据 Google 的测算 64M 的 RAM 已 经能够令系统正常运转了 其中 24M 被用于底层系统的初始化和启动 另外 20M 被用于高层启动高层服务 当然 随着系统服务的增多和应用功能的扩展 其所消耗的内存也势必越来越大 归纳起来 Dalvik 虚拟机有如下几个主要特征 1 一个应用中会定义很多类 编译完成后即会有很多相应的 CLASS 文件 CLASS 文件间会有不少冗余的信息 而 DEX 文件格式会把所有的 CLASS 文件 内容整合到一个文件中 这样 除了减少整体的文件尺寸 I O 操作 也提高了 类的查找速度 2 增加了新的操作码的支持 3 文件结构尽量简洁 使用等长的指令 借以提高解析速度 4 尽量扩大只读结构的大小 借以提高跨进程的数据共享 Dalvik 虚拟机上运行的不是普通的 CLASS 文件 而是特有的 dex 文件 在 Android 的 SDK 中有一个叫做 dx 的工具可以用来把 Java 的 class 文件转换成 dex 格式 一般来说 同样的 class 文件转换成的 dex 文件比它转换成的 jar 文 件要小不少 2 4 架构与许可证之间的关系架构与许可证之间的关系 Google 在设计 Android 时 就在版权问题上煞费苦心 Android 的架构也与 其许可策略有着莫大的关系 Linux 内核的许可是 GPL V2 Android 基于 Linux 内核构建 但开放手机联 盟却为它选择了 Apache 许可第二版 ASL V2 来发布 不过 它对于运行在 Android 之上的应用程序的许可则没有任何限制 第三方应用程序开发者可以选 择任何版权许可 这种在不同层次上选取不同许可协议的做法 对于 Android 的推广有重要的作用 众所周知 GPL V2 协议是典型的 Copyleft 协议 自由软件运动的精神领 袖 Richard Stallman 把它设计成具有传染性 不但使用该协议的软件自身要公开 源代码 对它的所有修改和衍生代码也都必须公开而且必须以相似的许可证发 布 而 ASL 则不同 它虽然也是一种使用广泛 并且得到了 OSI 认可的开源许 可 但它却并不限制商业性的开发和垄断式的发布 对于许多厂商来说 这一 点是至关重要的 许多软件厂商更愿意采用 ASL BSD 这类不设限的开源许可 因为在这样的许可下 他们既可以充分利用开源代码 又可以选择不公开自己 所作的修改 所以 ASL 协议促进了软件厂商对开源软件的使用 因为这可以让 厂商获利 在开源软件的基础上吸引尽可能多的厂商的参与 也很可能正是 Android 以 ASL 协议发布的原因 但是 Android 的这种许可方式也招致了许多批评的声音 2010 年 2 月 3 日 Linux 内核开发者 Greg Kroah Hartman 将 Android 的驱动程序从 Linux 内核代码 库中删除 这就意味着 Linux 内核小组不认可 Android 对 Linux 内核的贡献 这其中的原因就是 Android 出于授权许可考虑而精心设计的架构 本来 Linux 的驱动程序是位于内核空间的 但是这样的话厂商为自己的硬 件开发的驱动程序就得依照 GPL 协议公开源码 而显然厂商是不愿意因此而泄 露出硬件细节的 因此 Android 开发人员特意对 Linux 内核作了修改 将原本 应该位于 Linux 内核空间的驱动程序部分上移到了用户空间 然后再将 Linux 内核之上的部分以 ASL 许可发布 这样厂商就可以选择不公开其源码了 Android 也从而争取到了大量厂商的支持 可是这样做带来的恶果就是 Android 的开发人员的成果无法为主线上的 Linux 内核所用 厂商为 Android 开发的驱 动也根本无法用于其它的 Linux 内核 Android 只从 Linux 社区获取 却未能提 供回报 这就招致了开源社区的不满 并迫使 Linux 小组决定将 Android 从内 核源码主线上删除 3 Android 上的应用程序上的应用程序 3 1 Android 应用程序特点应用程序特点 Android 系统是一个强大的智能机系统 与之相适应的硬件也一般具备相对 较高的性能 总结起来 Android 系统上的应用程序具有以下一些特点 1 功能强大 Android 平台的设备一般都具备较强的运算能力 存储空间 网络功能以及各种各样的传感器 以第一款 Android 手机 HTC G1 为例 它拥 有电容触摸屏 加速度传感器 磁场感应器 GPS 等功能 并且对 GSM GPRS WCDMA EDGE HSDPA 这些网络提供支持 而且还拥有 WIFI 功能 这些硬件和网络上的支持让 Android 的应用程序有了极大的发挥空 间 也激发出了开发人员的创新热情 因此也涌现出了各种极富创意的应用软 件 如利用磁场感应来定位方向 检测附近的金属 又如 Google 官方推出的语 音识别和搜索 还有利用 GPS 功能结合 Google Map 实现的许多基于位置的服 务 2 可复用性强 Android 的应用程序由许多 Activity 组成 不同的 Activity 在程序中实现不同的功能模块 而最令人赞叹的就是 得益于 Android 的良好 设计 不同应用程序之间的 Activity 可以实现共享 可以通过安全选项进行配 置 这就实现了良好的复用性 例如假设我们要编写一个内嵌 web 页面的应 用 我们根本不需要自己编写浏览器的组件 而是可以直接调用系统中自带的 浏览器组件 非常方便地实现这一功能 3 开放程度高 开放 是 Android 的设计宗旨之一 因此不同于 iPhone OS 等封闭的商业 操作系统 在 Android 系统中 第三方的开发人员编写的程序与系统自带的应 用程序几乎是平等的 开发人员可以自己编写程序替代系统中原有的程序 甚 至连拨号 短信 主屏幕这样的核心功能都可以由第三方开发人员的程序替代 3 2 Android 的应用程序开发现状的应用程序开发现状 3 2 1 Android Market 与 iPhone App Store iPhone App Store 是苹果公司为 iPhone iThouch 等平台推出的应用软件商店 它极大地促进了开发者的热情 成为了竞争者纷纷模仿的对象 Google 也于 2008 年 8 月 28 日推出了 Android Market 效仿 App Store 并且也取得了不俗 的成绩 相比于 App Store Android Market 更为自由开放 在 App Store 上传的软件 需要经过长可达数周的审核 并且可能由于各种原因审核不通过 例如某些非 常优秀的软件就因为与 iPhone 自带的功能相重合而无法通过审核 在 Android Market 则不一样 开发人员只要注册认证之后就可以自由上传软件 不需要等 待审核 而且 Google 向来擅长数据分析 它为开发人员提交的应用提供了非常 详尽的统计 帮助开发人员研究用户需求 但是目前 Android Market 跟 App Store 之间还有相当大的差距 苹果的 App Store 只用了一个月的时间 销量就达到了 3000 万美元 至 2010 年 1 月份 App Store 应用的下载次数已经突破 30 亿次 从下表中 我们可以看到 App Store 的发展速度 App Store 的迅猛发展给不少个人开发者带来了巨大的财富 也让 EA 这些传统游戏厂商发现了新的商机 日期日期应用程序数目应用程序数目累计下载累计下载 2008年7月11日5000 2008年7月14日80010 000 000 2008年9月9日3 000100 000 000 2008年10月22日7 500200 000 000 2008年12月5日10 000300 000 000 2009年1月16日15 000500 000 000 2009年3月17日25 000800 000 000 2009年4月23日35 0001 000 000 000 2009年6月8日50 0001 000 000 000 2009年7月11日55 0001 000 000 000 2009年7月14日65 0001 500 000 000 2009年9月9日75 0001 800 000 000 2009年9月29日85 0002 000 000 000 2009年11月4日100 0002 000 000 000 2010年1月5日100 000 3 000 000 000 2010年1月27日140 000 3 000 000 000 相比之下 Android Market 的发展速度就明显要慢一些了 到目前为止 Android 上的应用数量总计大约为 3 万个 远少于 App Store 上的 10 多万个 归结起来 有以下原因 1 用户群的不同 苹果公司的用户群一直相对高端 并且对苹果产品的文化 非常认同 消费能力也较强 因此给开发者带来了大量的收入 刺激了开发人 员的热情 而相比之下 Android Market 中的应用则以免费应用为主 免费应用 的比例高达 57 位居所有手机应用商店之首 在 App Store 中 这一比例只 有 25 远远低于 Android Market 很显然 大量的免费应用是不利于开发人 员的 2 支付手段不便 Android Market 起初甚至根本不向收费软件开放 后来逐 渐在世界各地支持收费软件的付款了 但是却必须使用 Google Check Out 支付 工具才能支付 这使得世界上许多地区都无法支付 而且 Google Check Out 本 来流行程度就不如 PayPal 广 Google 却将其作为唯一的支付手段 许多用户也 因此放弃了购买收费软件 3 对付费软件的版权保护不佳 2009 年 2 月 Android Market 开始向美国 T Mobile 的用户开放付费软件下载 结果 12 小时之后就有用户破解了它的付费 软件防拷贝机制 用户只要提权到 root 帐户就可以把付费软件的 APK 文件直 接拷贝出来四处散布 因为 Android 的防拷贝机制仅仅是把下载下来的 APK 文 件存放到一个普通用户没有访问权限的目录下去 许多开发人员都对此有怨言 因为这些在网络上流传的 APK 文件直接就影响到了付费软件的销量 4 Android Market 的用户体验不佳 这是 App Store 的界面 功能丰富 界面清爽 这是 Android Market 的界面 相比而言 功能上就要弱不少了 Android 系统上安装的 Market 客户端程序比较简陋 功能十分有限 不便 于用户查找自己想要的程序 而在 Android Market 的官方网站 http www A 的十几款软件 对于一个拥有数万软件的应用商店来说 让用户能从中找出心 仪的软件是一项至关重要的工作 但显然 Android 官方在这方面做得还很不够 好在现在有许多非官方的网站可以让用户比较方便地查找和交流软件 国 外最著名的有 Cyrket aTrackDog 和 AndroLid 国内则有机锋网 安卓网等 其中安卓网还发布了自己的 Market 客户端 安卓市场 中国的开发人员可以 将自己的程序上传到安卓市场供用户下载 不过 我们依然要看到 Android 在各种设备上的广阔前景 它的开放性在给 开发人员带来某些暂时的不便的同时也给 Android 系统的推广带来了巨大的好 处 因此 现在不论国内还是国外 正有越来越多的开发者学习 Android 上的 应用程序开发 iPhone 应用程序开发人员也有不少正尝试或已经在进行 Android 上的应用程序开发 移动平台广告运营商 AdMob 于 2010 年 3 月对开 发人员进行了一次调查 调查结果表明有超过 70 的 iPhone 开发人员准备在 6 个月内尝试 Android 的应用开发 而且在 下一个准备参与开发的平台 这一 调查项中 Android 成为了开发人员的首选 下面就是 AdMod 的统计结果图 从图中我们可以明显看出开发人员对 Android 的热情在上升并且已经成为开 发人员下一个开发平台的首选 3 2 2Android 上的应用程序开发概要 Android 有丰富的功能 因此很容易与桌面操作系统混淆 它是一个分层的 环境 构建在 Linux 内核的基础上 包括丰富的功能 Android 应用程序是用 Java 编程语言编写的 它们在 Dalvik 虚拟机中运行 每个 Android 应用程序都占用 Dalvik VM 的一个实例 这个实例驻留在一个 由 Linux 内核管理的进程中 如下图所示 每一个 Android 应用程序都由以下一个或多个组件组成 1 活动 Activity 具有可视 UI 的应用程序是用活动实现的 当用户从主屏 幕或应用程序启动器选择一个应用程序时 就会开始一个动作 2 服务 Service 服务应该用于任何需要持续较长时间的应用程序 例如网 络监视器或更新检查应用程序 3 内容提供程序 Content Provider 可以将内容提供程序看作数据库服务器 内容提供程序的任务是管理对持久数据的访问 例如 SQLite 数据库 如果应 用程序非常简单 那么可能不需要创建内容提供程序 如果要构建一个较大的 应用程序 或者构建需要为多个活动或应用程序提供数据的应用程序 那么可 以使用内容提供程序实现数据访问 4 广播接收器 Broadcast Receiver Android 应用程序可用于处理一个数据 元素 或者对一个事件 例如接收文本消息 做出响应 5 意图 Intent 顾名思义 这一组件的作用就是用于传递各种 意图 它 起着传递消息的作用 例如 一个用户要打开一个浏览器 那么当执行打开浏 览器这个操作时 应用程序 这里指你打开浏览器这个活动 将会创建一个 intent 实例并将其传送给 Android 系统 之后系统将会通过分析这个意图来操作 这个意图 并将结果返回 Android 应用程序是连同一个 AndroidManifest xml 文件一起部署到设备的 AndroidManifest xml 包含必要的配置信息 以便将它适当地安装到设备 它包 括必需的类名和应用程序能够处理的事件类型 以及运行应用程序所需的许可 例如 如果应用程序需要访问网络 例如为了下载一个文件 那么 manifest 文件中必须显式地列出该许可 这种显式声明有助于减少恶意应用程序损害设 备的可能性 另外 在 Android 的应用程序开发过程中 还有以下一些方面是需要特别注 意的 1 存储和返回数据 Android 提供了很多种类的存储机制以及网络服务 在 Andriod 应用程序中 有几种不同读写数据的方法 可以根据需求选择 我们知道 对于 PC 机或者说是桌面操作系统来说 存储数据是通过文件系 统来进行的 这个文件系统可以被其他的应用程序所访问和操作 但是 在 Android 中却提出了一个不同的资源存储方式 在 Android 中 所有的应用程序 资源对自身而言是私有的 但是并不是说 其它程序就无法与之共享数据了 在 Android 中 可以通过提供一个标准的方法来使得其他的应用程序访问这些 私有的数据 那就是 ContentProvider 除了这一种方法 还有其它的方法也可 以使用 例如 Prefrences Files Databases Network 等 完全可以根据开发人 员的需求来作选择 2 安全模式 在 Android 中 为了使用应用程序更加地安全 Android 增加了安全模型来 操作资源和数据的特征 这是通过权限设置来决定的 Android 是一个多进程系 统 在此之中 每个应用程序都在自己的进程中运行 大多数的应用程序之间 的安全模式设置和标准的 Linux 系统相一致 例如给各个应用程序分配不同的 UID 3 Andriod 中的安全架构 Android 安全结构的一个中心设计思想是 在默认情况下 没有任何应用程 序可以对其他的应用程序 其他的用户进行操作 一个应用程序的进程就是一 个安全的沙盒 它不会打扰其他的应用程序 它所要请求获得的权限在安装时 用户就可以知晓 并且安装之后程序也无法改变自己的权限 4 资源和 i18n 国际化 Android 中也提供了应用程序资源管理系统 这些资源通常包括图像 字符 串 以及 XML 布局文件等等 这些资源在编译期间会以不同形式被编译到应 用程序中 例如 XML 文件会被编译成一个二进制代码 String 被压入一个更加 有效率的存储表格中 通过对不同语种的 String 资源分别管理 就可以很方便 地实现 i18n 4 Android 在中国的现状在中国的现状 4 1 Android 系统在中国的市场推广系统在中国的市场推广 对于我们国内的运营商和许多厂商来说 Android 是他们最称心如意的系统 首先 Google 将其免费发布 这样就给本来利润就不高的中国厂商们提供 了一个降低成本的好机会 其次 Google 将源码公开 而且还采用 Apache 许 可证 这样各家企业就可以在 Android 的基础之上加入自己的特色 而不用承 担任何侵权的风险 再次 Android 良好的设计 让厂商们可以在各种各样的电 子产品上进行移植 最大限度地帮助他们降低了成本 截至目前 国内三大运营商 中兴通讯和华为等厂商以及其他许多供应商 都已经加入了开放手机联盟 OHA 据统计 OHA 的中国成员数量已达到 12 家 占据总成员席位的近 1 5 这些企业纷纷利用 Android 推出了自己的产品 例如中国移动就基于 Android 推出了自己的 OMS 系统 它采用 Android 源 代码 但在业务层和用户体验层与此前的谷歌手机完全不一样 OMS 在终端手 机上完整深度订制了 飞信 快讯 无线音乐随身听 139 邮箱 移动梦网 号簿管家 百宝箱等 中国移动数据业务 实际上 OMS 的用户界面设计之初 就是把这些业务当作基本功能的一部分 所以使中国移动的数据业务第一次和 手机的自身用户体验达到深度结合 目前已经有联想 O1 戴尔 Mini 3i 等多款采 用了中国移动 OMS 系统的智能机上市 市场反响也非常好 另外 深圳等地的大量 山寨机 厂商也正在积极谋划 采用免费的 Android 系统 对这些厂商来说可以省下一大笔的授权费用 在山寨机已经进入 微利的时代 这无疑是非常诱人的 而另外一些电子厂商则另谋出路 将 Android 系统运用到了其它的设备上 例如国产品牌 OPPO 就推出了基于 Android 开发的电子书阅读器 还有一些厂商将其用于 MP4 播放器 在政策上 Android 也得到了不小的支持 2010 年 1 月 14 日 工信部在首 届海峡两岸 Android 技术及产业合作发展会上表示 工信部将通过制定科学的 产业政策 技术政策和业务政策 加强对 Android 的政策引导和规范 努力为 An

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论