. Android 是 什 么 第 章 绪 论 2 3 本 章 将 主 要 介 绍 Android 操 作 系 统, 这 些 背 景 知 识 可 以 帮 你 更 好 地 理 解 本 书 的 内 容 你 将 了 解 到, 这 一 平 台 在 如 今 以 便 携 式 消 费 型 电 子 设 备 为 基 础 的 Internet 2.0 环 境 下 是 如 何 大 显 身 手 的 这 里 所 说 的 Internet 2.0, 是 指 使 用 便 携 式 消 费 型 电 子 设 备, 通 过 多 种 不 同 的 数 据 网 络 来 访 问 互 联 网 这 些 电 子 设 备 包 括 智 能 手 机 平 板 电 脑 电 子 书 阅 读 器, 还 有 一 些 新 兴 的 消 费 型 电 子 设 备, 如 交 互 式 电 视 (itv) 本 书 是 这 一 领 域 的 基 础 性 入 门 教 程, 因 此 不 是 所 有 与 高 级 新 媒 体 相 关 的 领 域 都 会 涉 及, 例 如 本 书 不 会 涵 盖 3D 和 视 频 串 流 等 内 容 在 本 章 中, 我 们 会 介 绍 在 本 书 里, 哪 些 内 容 将 会 涉 及, 而 哪 些 内 容 不 会 涉 及 在 本 章 的 最 后, 将 会 介 绍 进 行 Google Android 平 台 开 发 工 作 所 需 要 的 工 具, 以 及 如 何 下 载 这 些 工 具 如 果 你 已 经 对 这 场 Android 革 命 的 重 要 意 义 有 所 理 解, 并 且 知 道 开 发 Android 应 用 程 序 需 要 哪 些 工 具, 那 么 你 可 以 跳 过 本 章 的 内 容 不 过, 本 章 的 一 部 分 内 容 可 能 会 帮 助 你 产 生 新 的 开 发 灵 感, 因 此 读 还 是 不 读, 最 好 谨 慎 决 定 哦! 友 情 提 示 : 开 发 可 靠 的 Android 应 用 程 序 可 不 是 轻 松 的 工 作, 你 需 要 同 时 具 备 一 定 的 高 级 编 程 语 言 ( 如 Java) 和 标 记 语 言 ( 如 XML) 知 识, 而 编 写 一 个 既 实 用 又 吸 引 人 的 新 媒 体 应 用 程 序 需 要 深 入 了 解 新 媒 体 方 面 的 知 识, 如 2D 绘 图 3D 渲 染 音 频 处 理 视 频 串 流 GPS 定 位 以 及 数 据 库 设 计 一 口 气 掌 握 上 述 这 些 知 识 几 乎 是 不 可 能 的, 要 想 成 为 一 名 顶 尖 的 Android 开 发 者, 需 要 经 过 多 年 的 努 力 实 践 刻 苦 钻 研 以 及 反 复 试 错 通 过 阅 读 本 书, 你 可 以 为 将 来 学 习 更 专 业 的 知 识 打 下 基 础, 了 解 编 写 Android 应 用 的 工 作 流 程, 以 便 最 终 创 造 出 属 于 自 己 的 Android 作 品. Android 是 什 么 Android 最 早 是 由 Andy Rubin 于 2 世 纪 初 创 立 的 一 个 手 机 操 作 系 统 2005 年,Google 收 购 了 Android 公 司, 并 任 命 Andy Rubin 为 Google 的 移 动 平 台 总 监 很 多 人 认 为, 这 次 收 购 很 大 程 度 上 是 Google 为 应 对 当 时 正 迅 速 崛 起 的 苹 果 iphone 所 作 出 的 反 应, 但 这 一 领 域 还 有 其 他 一 些 有 力 的 竞 争 者, 比 如 诺 基 亚 的 Symbian 和 微 软 的 Windows Mobile, 因 此 Google 此 次 收 购 人 才 和 知 识 产 权 的 目 的 显 而 易 见, 即 是 为 了 让 自 己 能 够 在 后 来 被 称 为 Internet 2.0 的 这 一 新 兴 领 域 占 有 一 席 之 地 4 5 6 7 8 9 0 2
2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至 是 非 便 携 设 备, 如 itv 家 庭 媒 体 中 心 以 及 机 顶 盒 Internet 2.0 将 游 戏 3D 动 画 数 字 视 频 数 字 音 频 高 清 影 像 等 新 媒 体 内 容 不 断 带 到 我 们 的 生 活 之 中, 而 Android 正 是 一 种 载 体, 数 码 艺 术 家 们 可 以 通 过 它 来 创 造 出 用 户 从 未 体 验 过 的 新 媒 体 作 品 在 过 去 0 年 中,Android 日 趋 成 熟, 并 已 成 长 为 一 个 十 分 安 全 可 靠 的 嵌 入 式 操 作 系 统 平 台, 版 本 从.0 开 始, 经 历 了.5.6 2.0 2. 2.2 2.3 等 稳 定 版, 直 到 最 近 发 布 3.0 版 本 嵌 入 式 操 作 系 统 可 以 看 做 是 将 整 个 计 算 机 系 统 集 成 在 一 个 芯 片 上, 小 到 足 以 装 进 一 个 手 持 电 子 设 备 中, 但 却 拥 有 强 大 的 功 能, 可 以 运 行 各 种 应 用 程 序 ( 人 们 更 喜 欢 称 之 为 应 用 ) Android 具 备 一 套 完 整 计 算 机 操 作 系 统 所 拥 有 的 强 大 功 能, 它 基 于 Linux 开 源 平 台 和 Oracle 公 司 ( 原 Sun Microsystems) 的 Java 语 言,Java 语 言 是 世 界 上 最 受 欢 迎 的 编 程 语 言 之 一 说 明 开 源 (open source) 指 的 是 通 常 由 开 源 社 区 成 员 所 合 作 开 发 的 软 件, 这 些 软 件 可 以 免 费 供 商 业 使 用, 并 且 开 放 其 全 部 的 源 代 码, 以 便 在 必 要 时 对 其 进 行 进 一 步 修 改 Android 是 开 源 的, 尽 管 Google 会 先 进 行 一 段 时 间 的 内 部 开 发 之 后 再 公 开 其 源 代 码, 但 在 源 代 码 公 开 后, 它 便 可 以 免 费 供 商 业 使 用 对 于 一 个 Android 设 备 来 说, 配 备 GHz 的 处 理 器 以 及 GB 的 高 速 DDR2 内 存 并 不 罕 见, 其 性 能 足 以 媲 美 几 年 之 前 的 台 式 电 脑, 或 者 是 现 如 今 的 上 网 本 随 着 时 代 的 发 展, 你 将 会 看 到 移 动 设 备 操 作 系 统 和 台 式 机 操 作 系 统 的 进 一 步 融 合, 例 如 Windows Mobile 7 和 iphone 4 移 动 平 台 当 事 实 证 明 Android 及 开 源 平 台 的 力 量 足 以 形 成 气 候 时, 一 些 大 公 司, 包 括 HTC 三 星 LG 以 及 T-Mobile, 创 立 并 加 入 了 开 放 手 持 设 备 联 盟 (Open Handset Alliance,OHA) 该 联 盟 旨 在 为 Google 的 Android 开 源 平 台 提 供 推 动 力, 而 且 这 一 举 措 十 分 奏 效 如 今, 相 比 其 他 操 作 系 统, 更 多 的 品 牌 制 造 商 选 择 Android 作 为 其 消 费 型 电 子 设 备 的 操 作 系 统 OHA 的 发 展 壮 大 令 Android 开 发 者 获 益 良 多 Android 使 得 开 发 者 可 以 在 单 一 环 境 下 创 建 自 己 的 应 用 程 序, 通 过 OHA 的 支 持, 开 发 者 可 以 将 他 们 的 内 容 发 布 到 众 多 名 牌 制 造 商 的 产 品 中, 并 可 用 于 多 种 不 同 类 型 的 消 费 型 电 子 设 备, 如 智 能 手 机 itv 系 统 电 子 书 阅 读 器 家 庭 媒 体 中 心 机 顶 盒 以 及 触 屏 平 板 电 脑 不 得 不 说, 这 些 机 会 着 实 令 人 心 动 因 此,Android 是 一 个 成 熟 的 操 作 系 统, 在 Google 的 支 持 下, 它 已 经 成 为 现 今 计 算 领 域 最 有 力 的 竞 争 者 之 一 Android 使 用 Linux Java 等 免 费 的 开 源 技 术, 以 及 XML 等 标 准, 为 开 发 者 和 众 多 世 界 著 名 的 消 费 型 电 子 产 品 制 造 商 提 供 了 一 个 内 容 和 应 用 程 序 的 发 布 平 台 什 么 是 机 会? Android 就 是 最 好 的 机 会!.2 Android 的 优 势 Android 平 台 的 好 处 实 在 是 太 多 了, 足 以 让 你 体 会 到 Android 开 发 的 魅 力
.3 本 书 范 围 3 首 先,Android 基 于 开 源 技 术 起 初, 开 源 技 术 并 不 如 苹 果 和 微 软 的 付 费 技 术 那 样 完 善, 但 经 过 20 多 年 的 发 展, 开 源 软 件 技 术 在 精 致 程 度 上 已 经 可 以 和 传 统 方 法 开 发 的 技 术 平 起 平 坐 这 一 点 在 Internet 2.0 中 得 到 了 印 证, 因 为 大 多 数 消 费 型 电 子 设 备 制 造 商 选 择 了 Linux 和 Java, 而 并 非 Windows 和 Mac 操 作 系 统 因 此,Android 开 发 者 所 开 发 的 应 用 不 仅 可 以 用 于 智 能 手 机, 还 可 以 用 于 新 兴 的 消 费 型 电 子 设 备, 只 要 这 些 设 备 拥 有 网 络 功 能, 并 可 以 连 接 到 Android 电 子 市 场 相 比 封 闭 操 作 系 统 和 PC 操 作 系 统 来 说,Android 覆 盖 了 更 多 的 设 备 并 影 响 着 用 户 生 活 的 方 方 面 面, 这 意 味 着 将 产 生 更 多 的 收 益, 也 将 进 一 步 刺 激 Android 开 发 其 次, 除 了 可 以 免 费 供 商 业 使 用 以 外,Android 背 后 还 有 一 个 强 有 力 的 靠 山, 它 就 是 现 今 计 算 领 域 规 模 最 大 最 富 有 最 富 创 新 力 的 公 司 之 一 :Google 此 外, 还 有 OHA 以 及 来 自 各 大 著 名 企 业 的 数 万 亿 美 元 资 本 在 支 持 着 你 的 开 发 工 作 这 听 起 来 像 是 天 方 夜 谭, 但 只 要 你 成 为 一 名 Android 开 发 者 ( 经 过 十 几 章 的 学 习 后 你 就 可 以 ), 这 一 切 都 将 成 为 现 实 最 后, 也 是 最 重 要 的 一 点, 发 布 Android 应 用 程 序 比 在 其 他 同 类 平 台 上 发 布 要 容 易 得 多 ( 在 这 里 我 不 点 名 以 避 免 争 议 ) 我 们 都 听 说 过 一 些 耸 人 听 闻 的 事, 比 如 一 些 很 大 的 开 发 公 司 往 往 要 等 上 几 个 月, 甚 至 是 几 年, 它 们 所 开 发 的 应 用 才 能 在 某 些 应 用 商 店 中 被 批 准 上 架 Android 开 源 平 台 上 就 几 乎 不 存 在 这 样 的 问 题 在 Android 电 子 市 场 中 发 布 你 的 应 用 非 常 容 易, 只 需 缴 纳 25 美 元 的 费 用, 上 传 你 的.apk 文 件, 然 后 设 置 该 应 用 是 免 费 下 载 还 是 付 费 购 买 即 可.3 本 书 范 围 本 书 是 开 发 Android 应 用 程 序 的 入 门 介 绍, 适 合 零 基 础 的 初 学 者 阅 读 零 基 础 的 初 学 者, 是 指 从 未 在 Android 平 台 上 为 消 费 型 电 子 设 备 开 发 过 任 何 应 用 程 序 的 人, 他 们 可 能 不 了 解 Java 是 什 么, 也 不 知 道 XML 是 如 何 工 作 的.3. 本 书 所 涉 及 的 内 容 本 书 将 涉 及 Android 开 发 的 基 础 要 素, 包 括 以 下 这 些 内 容 在 该 平 台 上 进 行 开 发 所 需 的 开 源 工 具 从 哪 里 可 以 获 取 这 些 免 费 工 具 如 何 正 确 安 装 和 配 置 用 于 应 用 开 发 的 工 具 哪 些 第 三 方 工 具 可 以 配 合 Android 开 发 工 具 使 用 目 前 有 哪 些 操 作 系 统 和 平 台 支 持 使 用 这 些 工 具 来 进 行 Android 开 发 Java 和 XML 的 编 程 理 念 和 基 础, 以 及 它 们 在 Android 开 发 中 的 具 体 应 用 Android 应 用 程 序 的 工 作 方 式 如 何 定 义 用 户 界 面 如 何 在 屏 幕 上 显 示 内 容 Android 电 子 市 场 现 在 已 更 名 为 Google Play 商 店 译 者 注 2 3 4 5 6 7 8 9 0 2
4 第 章 绪 论 如 何 与 其 他 的 Android 应 用 程 序 通 信 如 何 访 问 数 据 资 源 网 络 以 及 互 联 网 如 何 将 应 用 内 外 所 发 生 的 事 件 通 知 给 用 户 如 何 发 布 Android 应 用 程 序 Android 应 用 程 序 如 何 通 过 Android 电 子 市 场 销 售 下 载 以 及 自 动 更 新 Android 包 含 超 过 44 个 Java 包, 总 计 7000 多 段 功 能 性 程 序 代 码, 使 你 能 够 实 现 所 能 想 象 到 的 任 何 功 能 : 从 在 屏 幕 上 放 置 一 个 按 钮, 到 合 成 语 音 和 访 问 智 能 手 机 的 一 些 高 级 功 能, 如 高 分 辨 率 摄 像 头 GPS 以 及 重 力 传 感 器 说 明 Java 中 的 包 (package) 指 的 是 一 些 拥 有 相 关 功 能 的 编 程 工 具 的 集 合 例 如,java.io 这 个 包 中 包 含 了 用 于 在 你 的 程 序 中 处 理 输 入 和 输 出 的 工 具, 如 读 取 文 件 内 容 或 向 文 件 写 入 数 据 在 后 面 的 章 节 中, 我 们 会 讲 解 如 何 将 你 自 己 的 代 码 组 织 成 包 这 说 明 什 么? 这 说 明 即 便 是 最 高 级 的 Android 书 籍 也 无 法 完 全 涵 盖 Android 平 台 可 以 实 现 的 如 此 众 多 的 功 能 实 际 上, 大 部 分 书 籍 都 只 专 注 于 Android API 中 的 某 个 特 定 领 域 每 个 API 都 很 复 杂, 从 开 发 者 的 角 度 来 看, 这 意 味 着 无 比 强 大 的 创 造 力.3.2 本 书 未 涉 及 的 内 容 那 么, 本 书 中 没 有 涉 及 哪 些 内 容 呢? 有 哪 些 很 酷 又 很 强 大 的 功 能 需 要 你 去 继 续 阅 读 关 于 Android 开 发 的 进 阶 书 籍 呢? 在 硬 件 方 面, 我 们 将 不 会 涉 及 如 何 控 制 摄 像 头 访 问 智 能 手 机 的 GPS 数 据, 以 及 如 何 访 问 重 力 传 感 器 和 陀 螺 仪 ( 即 当 用 户 旋 转 手 机 时, 使 应 用 程 序 可 以 对 手 机 的 位 置 作 出 反 应 ) 我 们 也 不 会 涉 及 一 些 关 于 触 摸 屏 的 高 级 概 念 ( 如 手 势 ), 不 会 涉 及 访 问 麦 克 风 蓝 牙 等 硬 件 以 及 无 线 网 络 连 接 的 内 容 在 软 件 方 面, 我 们 将 不 会 涉 及 创 建 你 自 己 的 Android SQLite 数 据 库 结 构 数 字 视 频 和 音 频 等 新 媒 体 的 解 码, 以 及 实 时 3D 渲 染 系 统 ( 称 为 OpenGL ES) 我 们 不 会 涉 及 语 音 合 成 语 音 识 别 和 全 球 语 言 支 持 ( 通 过 这 个 功 能, 开 发 者 可 以 让 应 用 程 序 正 确 显 示 不 同 国 家 的 语 言 和 字 符 集 ) 我 们 也 不 会 涉 及 高 级 的 编 程 技 术, 如 游 戏 开 发 人 工 智 能 以 及 物 理 模 拟 上 述 这 些 内 容 非 常 复 杂, 适 合 在 专 门 的 书 籍 中 详 细 探 讨.4 下 载 SDK 工 具 在 第 3 章 中, 你 将 学 习 如 何 搭 建 一 个 完 整 的 Android 开 发 环 境 我 们 将 主 要 用 Windows 来 讲 解, 因 为 我 是 在 Windows 中 进 行 Android 开 发 的, 不 过 在 Mac 和 Linux 系 统 中, 步 骤 也 是 非 常 相 似 的 如 果 你 喜 欢 使 用 Mac 或 Linux, 我 保 证 这 些 步 骤 也 完 全 适 用 在 这 里, 我 们 来 看 看 到 哪 里 去 下 载 所 需 的 工 具, 这 样 你 可 以 在 学 习 安 装 和 配 置 这 些 工 具 之 前
.4 下 载 SDK 工 具 5 先 做 好 准 备, 因 为 每 一 个 开 发 工 具 都 有 数 百 兆 大 小, 根 据 网 速 的 不 同, 下 载 这 些 工 具 可 能 只 要 花 0 分 钟, 也 可 能 要 花 上 0 小 时 Android 开 发 环 境 主 要 由 以 下 三 个 主 要 部 分 组 成 : Java Eclipse Android 当 你 在 第 3 章 中 安 装 并 配 置 你 所 下 载 的 这 些 软 件 包 时, 你 会 看 到 Eclipse 提 示 说 需 要 安 装 Java 软 件 包 才 能 运 行 因 此, 我 们 接 下 来 就 按 照 实 际 安 装 的 顺 序 来 下 载 这 些 软 件, 先 是 Java, 然 后 是 Eclipse, 最 后 是 Android.4. Java 我 们 先 从 一 切 的 基 础 Java 平 台 开 始 我 们 需 要 安 装 的 是 Java 标 准 版 (Java Standard Edition, Java SE), 这 个 版 本 包 含 Java 编 程 语 言 的 核 心 内 容 要 下 载 Java SE, 只 要 访 问 Oracle 公 司 的 网 站, 在 Technology Network 菜 单 的 Java 目 录 下 找 到 Java SE 下 载 页 面 即 可, 或 者 可 以 直 接 访 问 这 个 网 址 :http://www.oracle.com/technetwork/java/javase/ downloads/index.html 图 - 显 示 的 是 Java SE 下 载 页 面 2 3 4 5 6 7 8 9 0 图 - 下 载 Java SE JDK 2
6 第 章 绪 论 点 击 Download JDK 按 钮 开 始 下 载 Java SE Java 开 发 工 具 包 (JDK), 然 后 从 下 拉 菜 单 中 选 择 你 所 使 用 的 操 作 系 统 平 台, 同 意 许 可 协 议, 点 击 Continue 按 钮, 你 将 看 到 一 个 所 选 软 件 包 的 下 载 链 接, 点 击 链 接 即 可 开 始 下 载 说 明 请 不 要 下 载 Java 企 业 版 (Java Platform Enterprise Edition, Java EE) Java FX 或 者 Java with NetBeans.4.2 Eclipse Eclipse 是 一 个 集 成 开 发 环 境 (Integrated Development Environment,IDE), 它 提 供 了 一 个 集 成 环 境, 让 你 更 加 方 便 地 编 写 运 行 和 测 试 程 序 代 码 换 句 话 说, 你 可 以 在 Eclipse 内 置 的 文 本 编 辑 器 中 编 写 代 码, 然 后 再 用 Eclipse 的 命 令 来 运 行 和 测 试 这 些 代 码, 无 需 切 换 到 其 他 软 件 目 前, 运 行 Android 需 要 Eclipse 的 Galileo 版 本 ( 而 不 必 是 Helios 版 ), 你 需 要 下 载 支 持 Java 的 Eclipse 版 本, 也 就 是 Eclipse IDE for Java Developers 通 过 下 面 的 网 址 可 以 访 问 Eclipse 网 站 中 的 下 载 页 面 :http://www.eclipse.org/downloads/packages/release/galileo/sr2 图 -2 显 示 了 你 需 要 下 载 的 Galileo 软 件 包 图 -2 选 择 下 载 Eclipse IDE for Java Developers
.5 小 结 7 点 击 右 栏 中 和 你 所 使 用 的 操 作 系 统 相 对 应 的 链 接, 然 后 选 择 一 个 合 适 的 镜 像 站 点 开 始 下 载.4.3 Android SDK Android 软 件 开 发 工 具 包 (Software Development Kit,SDK) 包 含 一 系 列 文 件 和 工 具, 它 与 Eclipse IDE 相 配 合, 就 可 以 成 为 一 个 Android 专 用 的 开 发 工 具 要 下 载 Android SDK, 可 以 通 过 下 面 的 网 址 访 问 Android 开 发 者 网 站 :http://developer.android. com/sdk/index.html 图 -3 显 示 了 可 供 下 载 的 Android SDK 软 件 包, 请 下 载 适 合 你 所 使 用 的 操 作 系 统 的 最 新 版 本 SDK 2 3 4 5 6 7 图 -3 下 载 Android SDK 8 说 明 在 第 3 章 中, 我 们 将 使 用 Eclipse 安 装 其 他 一 些 软 件 包 ( 图 -3 中 左 侧 栏 中 显 示 的 那 些 ) 目 前 你 无 需 在 意 其 他 的 软 件, 只 需 下 载 主 要 的 SDK 软 件 包 即 可 Eclipse 和 Android SDK 安 装 并 配 置 完 毕 后, 可 以 安 装 手 机 模 拟 器 和 其 他 一 些 插 件 来 增 强 你 的 开 发 环 境 在 第 3 章 中 我 们 会 涉 及 这 些 内 容, 同 时 还 会 讲 解 Eclipse IDE Android 开 发 环 境 的 详 细 配 置.5 小 结 Google 于 2005 年 收 购 了 Andy Rubin 所 开 发 的 Android, 并 将 其 开 源, 使 得 开 发 者 能 够 用 Java 和 XML 来 创 建 移 动 设 备 应 用 程 序 从 那 以 后,Android 风 潮 促 使 行 业 巨 头 形 成 一 个 开 放 行 业 联 盟, 并 使 其 成 为 如 今 成 长 最 快 的 移 动 平 台 Android 的 潜 力 值 得 看 好, 不 仅 是 移 动 设 备, 还 包 括 其 他 9 0 2
8 第 章 绪 论 种 类 的 消 费 型 电 子 设 备, 如 平 板 电 脑 和 itv 从 本 书 中, 你 将 学 习 从 哪 里 获 取 Android 开 发 环 境 如 何 正 确 安 装 并 配 置 它 们, 以 及 如 何 用 它 们 创 建 出 能 发 挥 Android 强 大 功 能 的 应 用 程 序 Android 开 发 需 要 三 个 基 本 的 组 件 :Java Eclipse, 当 然, 还 有 Android 按 照 本 章 中 的 讲 解, 你 可 以 免 费 下 载 到 这 些 组 件 把 Android SDK 安 装 到 Eclipse 中 之 后, 你 就 拥 有 了 一 个 综 合 性 的 Adnroid 应 用 程 序 开 发 环 境 在 下 一 章 中, 我 们 将 大 致 讲 一 讲 本 书 所 涵 盖 的 内 容, 然 后 从 第 3 章 开 始 讲 解 开 发 环 境 的 安 装 与 配 置