lSSN 1 o09-3044
Computer Knowle内e and Technology电脑知识与技术
Vo1.5,No.28,October 2009,PP.7959—7962
基于 Google Android平台的应用程序开发与研究
张仕成
(同济大学 软件学 院 .上 海 201804)
E—mail:x ̄l@ccce.net.CH
http://www.dnzs.net.CH
Tel:+86—55 1—5690963 5690964
摘 要 :由 Google倡 导发 起 的开 放 手 机联 盟及 其 推 出的 Android平 台,一 经 发 布 便 在 业 内引起 轩 然 大 波 。 首 先介 绍 了 android平 台 中
的 内部 结 构 ,并通 过 和现 有 的智 能手机 开 发 平 台进 行 比较 研 究分 析 了该 平 台的 结 构 特 点 ,以 此 来说 明 android平 台具有 强 大 的 开放
性 和 兼 容 性 。 然后 重 点介 绍 了该 平 台强 大 的 功 能之 一 — — Google Map,通 过 开 发 一 个 利 用 地 理 定 位 服 务 来 获 取 当前设 备 地 理 位 置
的应 用实例 ,并 详 细地 介 绍 了Google Map中 丰富 的 API功 能以及 应 用程 序 的基 本 开发 流 程 .来 验 证 Android SDK 提供 的强 大 的技
术 支持 。
关 键 词 :Android;智 能手 机 平 台 ;应 用程 序 ;Google Map;Geocode
中图 分类号 :TP18 文献 标识 码 :A 文 章编 号 :1009—3044(2009)28—7959—04
Development and Research of Application Based on Google Android
ZH AN G Shi—Cheng
(Software College,Tongji UniversiW,Shanghai 201804,China)
Abstract:The establishment of OHA (Open Handset Alliance)and the publication of Android platform by Google have caused uproar in
com m unication industry.This paper firsdy introduced and analysed characteristics of this platform by com pared with others,to explain that
this platform has the form idable openness and the com patibility.Then it introduced the application interfaces of G oogle M 叩 ,and the basic
development procedure of a application,which used a location service to gain the geographical position of the current equipm ent,to veery
the formidable technical support w hich the android sdk provides.
Key words:Android;smart phone platform ;application;Google M ap;Geocode
2007年 11月 由 Google牵 头 有 30多家 移 动技 术 和无 线应 用 领 域 领 先 企业 组 成的 开 放手 机 联 盟 (Open Handset Alliance)发 布 了
其 智能 手机 平 台一 Android。Android是 一 个 开 放、自 由的 移动终 端 平 台 ,它是 由操 作 系统 、巾 间件 、用 户界 面、应 用 软 件 组成 ,同时 其
开 放性 保证 该 平 台不 存 存 任何 阻碍 移 动产 业 创新 的 专有 权 障碍 。开 发 人 员 在该 平 台开 发 的应 用程 序 ,是 使 用 Java语 言 编 写的 、在
Dalvik虚 拟 机 上 运 行的 。Android的底 层是 以 开放 性 的 Linux kernel为 其 架构 ,也 可 以 理 解 为 Google推 H{的手 机 操 作 系统 和 相关 软
件 的 总 称 。
1 Android平台 的架构
Android平 台整体 自底向上 由以下 四个 层 次组成 :Linux内核层 、Android运行 时 库和其他 库层 、应用框架层 、应用 程 序层。
1)Linux内核 层 :Android基 于 Linux version2.6.23内核 开 发 的 ,主要 是 添 加 了一 个名 为 Goldfish的虚 拟 CPU 以 及 Android运 行
所 需的特 定 驱 动 代码 。该 层 用 来 提供 系统 的底 层 服务 ,包 括 安 全 机 制 、内存 管理 、进 程 管 理 、网络 堆 栈 及 一 系列 的驱 动 模块 。作 为一
虚 拟的 中间 层 ,该层 位 于硬 件 与其 它的软 件 层 之 间 。需 要注 意 的是 ,这 个 内核 操 作系 统 并非 类 GNU/Linux的 ,所 以其 系 统库 、系 统初
始化 和 编 程 接 口都 和标 准 Linux系统 有 所 不 同 的 。它 没 有采 用 虚 拟 内存 文 件 系 统 。而是 采 用 YAFFS2文 件 系统 。YAFFS(Yet Another
Flash File System)文 件系 统 是一 个 开 源 的 ,专 门 为 NAND Flash设 计 的文 件 系统 ,具 有很 好 的 可移 植 性 ,也 是 一 种 日志 型 文 件 系 统 ,
能够 在 Linux,uCLinux.和 Windows CE 上运 行 。YAFFS目前 有 YAFFS和 YAFFS2
两 个版 本 ,一 般来 说 ,YAFFS对 小页 面 (528字 节/页 )有很 好 的支 持 ,而 更 大的 页 面
(2K+64字 节/页 )就 需 要支 持 超 大 容量 的 NAND Flash。 所 以采 用 支 持大 页 面 的
YAFFS2文件 系统
2)Android运行时库 和 其他库层 :Android运 行 时库 包 含一 组核心库 (提供了
Java语 言核 心库 内的 大部 分 功 能 )和 Dalvik虚 拟 机 。 同 时 Android提 供 了 丰 富 的
库类支持且 大部 分 为开源代码 ,如采用的数 据库 为 SQLite。Android选 择它作为移
动 终端 的嵌 入 式 数据 库 有 以下 优 点 ,它 无需 安 装 和管 理 配 置 ,它 是一 个 存 储 在 单
一
磁 盘文件 中的完 整 的 数 据库 ,体 积 小 只 有 250KB但 支 持 数 据 库大 小 至 2TB,提
供 了对 事 务 功 能和 并 发 处 理 的支 持 , 而 且 比目前 流 行 的大 多数 数 据 库 运 行 速度
快
应用 层程序
I 应用程序框架 l
l 其他库 厂—— _
I图形图像 视频播放 核 心库 I 『
浏览嚣 数据库 I DMvik虚拟机 l
J Lint ̄ 内核层 J
图 1 Android平 台 的 结 构
3)应用 框架 层 :在 应用 框 架 Android开 发人员 可以跟 那 些 核 心 应 用 一样拥 有 访 问框 架 APIs的全 部 权 限 。应 用 的系 结 构化 设 计
简化了各组 件 之 间的重 用 ,任 何 应用都 可 以分发 自己的足见 ,任何应用 也 可 以使用 这 些分发的组件 (应用 的使用方法需 遵 循框架的
安 全性 约束 )。
4)应用程序 层 :Android本 身 会附带一些核心的应 用 程序 ,包括 e—mail客 户端 、短信 程 序 、日历 、地图 、浏览器 、通讯 录等 等 ,目前
所 有的应 用 程 序 都 是 由 Java语 言 开发 的 。
收稿 日期 :2009—07—16
作 者 简介 :张仕 成 (1983一),男 ,河 南 信 阳 人,同济 大 学软件 学院 工程 硕 士 研 究 生。
本栏目责任编辑:谢媛媛 l j÷一一 … 糍镰 诗拜发 7959