1
|
|
|
- 乖能 毕
- 9 years ago
- Views:
Transcription
1
2
3
4 内 容 提 要 作 为 Google 开 发 的 全 新 开 源 手 机 平 台,Android 发 展 如 火 如 荼 本 书 通 过 大 量 代 码 秘 诀 全 面 详 尽 地 讲 述 了 Android 开 发 技 术 从 activity 和 intent 基 础 知 识 开 始, 到 线 程 服 务 broadcast receiver 以 及 alert 警 告 框, 再 到 用 户 界 面 布 局 界 面 事 件 多 媒 体 技 术 硬 件 接 口 网 络 通 信 数 据 存 储 方 法 基 于 位 置 的 服 务 Android 高 级 开 发 技 术 和 调 试, 书 中 贯 穿 了 经 Android 设 备 或 者 模 拟 器 测 试 的 可 用 范 例, 将 功 能 丰 富 结 构 复 杂 的 Android 应 用 程 序 清 晰 完 美 地 展 现 给 开 发 人 员 对 于 那 些 有 志 于 Android 应 用 开 发 的 人 员 来 说, 本 书 是 难 得 的 参 考 读 物 图 灵 程 序 设 计 丛 书 Android 开 发 秘 籍 著 [ 美 ] James Steele Nelson To 译 李 青 王 瑜 赵 丞 兵 等 责 任 编 辑 朱 巍 执 行 编 辑 刘 美 英 人 民 邮 电 出 版 社 出 版 发 行 北 京 市 崇 文 区 夕 照 寺 街 14 号 邮 编 电 子 邮 件 [email protected] 网 址 北 京 印 刷 开 本 : /16 印 张 :17.25 字 数 :408 千 字 2011 年 8 月 第 1 版 印 数 : 册 2011 年 8 月 北 京 第 1 次 印 刷 著 作 权 合 同 登 记 号 图 字 : 号 ISBN 定 价 :49.00 元 读 者 服 务 热 线 :(010) 转 604 印 装 质 量 热 线 :(010) 反 盗 版 热 线 :(010)
5 前 言 Android 是 发 展 最 为 迅 速 的 移 动 操 作 系 统 (OS) 以 Android 为 核 心 的 整 个 生 态 系 统 也 在 迅 速 成 长, 仅 去 年 一 年 就 推 出 30 多 种 智 能 手 机, 而 平 均 每 月 新 增 1 万 多 个 应 用 程 序 (APP) 其 设 备 功 能 多 样, 可 供 选 择 的 移 动 运 营 商 众 多, 足 以 让 所 有 人 动 心 上 网 本 是 安 装 Andorid 的 天 然 平 台, 但 Android 的 强 劲 发 展 势 头 使 之 进 一 步 渗 透 到 电 视 机 甚 至 汽 车 工 业 许 多 世 界 知 名 的 大 企 业, 从 银 行 到 快 餐 连 锁 店 和 航 空 公 司, 都 拥 有 了 自 己 的 Android 应 用, 并 提 供 兼 容 服 务 Android 开 发 人 员 获 得 了 更 多 机 会, 因 为 其 应 用 程 序 可 以 接 触 到 比 以 往 任 何 时 候 都 要 多 的 用 户, 增 加 了 开 发 程 序 的 回 报 1 为 什 么 要 写 本 书 Android 操 作 系 统 简 单 易 学, 而 且 谷 歌 提 供 了 许 多 库, 方 便 大 家 实 现 功 能 丰 富 结 构 复 杂 的 应 用 程 序 唯 一 美 中 不 足 的 是 缺 少 清 晰 详 尽 的 文 档,Android 开 发 者 社 区 的 许 多 人 都 提 到 了 这 一 点 Android 的 开 源 意 味 着 任 何 人 都 可 以 深 入 研 究 并 对 一 些 文 件 做 逆 向 工 程 许 多 开 发 者 论 坛 都 使 用 这 种 方 法 推 出 了 优 良 的 范 例 但 我 们 仍 然 需 要 一 本 书 通 过 一 致 的 体 例 来 讨 论 操 作 系 统 的 各 个 方 面 一 个 清 晰 的 可 用 范 例 比 得 上 一 万 字 的 文 档 开 发 人 员 在 面 对 问 题 的 时 候, 通 常 喜 欢 采 用 类 似 极 限 编 程 的 方 法, 也 就 是 说, 他 们 找 到 接 近 解 决 方 案 的 可 用 代 码 范 例, 经 过 修 改 或 扩 展 来 满 足 自 己 的 需 求 学 习 这 些 范 例 也 是 一 种 了 解 编 码 风 格 的 有 效 方 法, 开 发 者 可 按 类 似 风 格 写 出 代 码 的 其 他 部 分 本 书 提 供 了 许 多 完 整 的 秘 诀, 以 满 足 读 者 此 种 需 要 介 绍 每 个 秘 诀 的 同 时, 我 们 也 逐 一 讲 解 Android 操 作 系 统 的 主 要 概 念 目 标 读 者 编 写 Android 应 用 程 序 的 开 发 人 员 将 是 本 书 的 最 大 获 益 者 我 假 设 读 者 了 解 基 本 的 Java 和 Eclipse 开 发 环 境, 但 对 于 本 书 大 部 分 内 容 这 点 并 非 必 要 Java 是 一 种 模 块 化 的 语 言, 大 部 分 ( 甚 至 全 部 ) 的 秘 诀 范 例 经 过 些 许 修 改 就 可 以 整 合 到 读 者 自 己 的 Android 工 程 中 我 们 编 写 每 个 主 题 时 都 考 虑 到 可 以 将 其 作 为 Android 课 程 的 补 充 材 料 1 秘 籍, 此 处 的 原 文 为 cookbook( 食 谱 ), 引 申 为 秘 籍 的 意 思, 后 文 中 的 recipe 是 秘 诀 的 意 思 即 这 本 秘 籍 由 大 量 秘 诀 组 成 译 者 注
6 2 前 言 如 何 使 用 本 书 总 体 上, 本 书 中 的 代 码 秘 诀 内 容 丰 富 完 整, 包 含 了 在 Android 设 备 上 运 行 应 用 程 序 所 有 必 要 的 信 息 第 1 章 和 第 2 章 从 整 体 上 介 绍 了 Android 的 使 用, 当 然, 你 可 以 跳 过 这 一 部 分, 从 更 重 要 的 地 方 开 始 看 起 这 本 书 是 作 为 参 考 书 来 写 的, 书 中 主 要 通 过 范 例 讲 述 Android 开 发 知 识, 这 些 范 例 实 现 了 有 意 思 的 秘 诀, 会 让 你 受 益 匪 浅 秘 诀 中 介 绍 的 主 要 技 术 均 在 标 题 中 体 现 此 外, 每 个 秘 诀 在 必 要 时 还 介 绍 了 其 他 相 关 技 术 读 完 本 书 以 后, 开 发 人 员 应 该 能 够 : 从 头 开 始 编 写 Android 应 用 程 序 ; 编 写 适 用 于 多 个 Android 版 本 的 程 序 ; 使 用 Android 提 供 的 各 种 应 用 编 程 接 口 (API); 博 览 大 量 代 码, 迅 速 运 用 到 自 己 的 程 序 中 ; 学 会 在 Android 中 用 多 种 方 法 完 成 同 样 任 务, 体 会 各 种 方 法 的 优 劣 ; 理 解 Android 编 程 的 独 特 魅 力 本 书 结 构 第 1 章 将 介 绍 Android 开 发 的 方 方 面 面, 但 不 涉 及 代 码 层 面 这 是 唯 一 不 包 括 秘 诀 的 一 章, 但 提 供 了 有 用 的 背 景 知 识 第 2 章 概 要 介 绍 了 4 个 Android 组 件, 以 及 Android 工 程 是 如 何 组 织 的 本 章 着 重 介 绍 了 作 为 应 用 程 序 主 要 构 成 的 activity 第 3 章 介 绍 了 线 程 服 务 接 收 器 等 后 台 服 务, 以 及 作 为 这 些 后 台 任 务 的 通 知 方 法 使 用 的 alert 警 告 框 第 4 章 涵 盖 了 用 户 界 面 屏 幕 布 局 和 视 图 第 5 章 涉 及 用 户 触 发 的 事 件, 如 触 摸 事 件 和 手 势 第 6 章 讲 的 是 多 媒 体 操 作 录 制 以 及 音 频 和 视 频 播 放 第 7 章 介 绍 了 Android 设 备 的 硬 件 API 及 其 使 用 方 法 第 8 章 讨 论 了 Android 设 备 和 外 界 应 用 的 交 互, 包 括 SMS 网 页 浏 览 和 社 交 网 络 第 9 章 涵 盖 了 Android 中 使 用 的 各 种 数 据 存 储 技 术, 包 括 SQLite 第 10 章 着 重 介 绍 了 通 过 GPS 等 不 同 的 方 法 获 取 位 置 信 息, 以 及 使 用 诸 如 谷 歌 地 图 API 的 相 关 服 务 第 11 章 介 绍 一 些 Android 的 高 级 技 巧, 包 括 自 定 义 视 图 使 用 原 生 代 码 获 得 更 快 的 处 理 速 度, 以 及 使 用 Android 备 份 管 理 器 等 最 后, 第 12 章 讲 述 了 对 整 个 开 发 周 期 都 非 常 有 用 的 测 试 和 调 试 框 架 补 充 参 考 资 料 网 上 有 许 多 Android 的 在 线 参 考 信 息 以 下 是 一 些 必 看 的 经 典 网 站 Android 源 代 码 : Android 开 发 者 主 页 : Android 开 发 者 论 坛 : 开 放 源 码 目 录 : 栈 溢 出 论 坛 (Stack Overflow Discussion Threads): Android 开 发 者 讲 坛 (Talk Android Developer Forums):
7 目 录 第 1 章 Android 概 述 Android 演 化 史 Android 的 两 面 性 运 行 Android 的 设 备 HTC 系 列 机 型 摩 托 罗 拉 系 列 机 型 三 星 系 列 机 型 平 板 电 脑 其 他 设 备 Android 设 备 的 硬 件 差 异 屏 幕 用 户 输 入 方 式 传 感 器 Android 的 特 点 多 进 程 和 应 用 程 序 微 件 触 摸 手 势 和 多 点 触 控 硬 键 盘 和 软 键 盘 Android 开 发 如 何 使 用 本 书 中 的 秘 诀 好 好 设 计 应 用 程 序 保 持 向 前 兼 容 健 壮 性 软 件 开 发 工 具 包 安 装 与 更 新 软 件 特 性 和 API 级 别 利 用 模 拟 器 或 真 机 调 试 程 序 使 用 Android 调 试 桥 签 名 和 发 布 应 用 Android Market 最 终 用 户 许 可 协 议 提 升 应 用 程 序 的 曝 光 率 脱 颖 而 出 为 应 用 程 序 收 费 管 理 评 论 和 更 新 Android Market 的 候 补 之 选 第 2 章 应 用 程 序 基 础 知 识 : activity 和 intent Android 应 用 程 序 预 览 秘 诀 1: 创 建 工 程 并 新 建 activity 工 程 目 录 结 构 及 自 动 生 成 内 容 Android 包 和 Manifest 清 单 文 件 重 命 名 应 用 程 序 中 的 部 分 文 件 Activity 的 生 命 周 期 秘 诀 2: 使 用 其 他 的 生 命 周 期 方 法 秘 诀 3: 强 制 执 行 单 任 务 模 式 秘 诀 4: 强 制 屏 幕 方 向 秘 诀 5: 保 存 和 恢 复 activity 信 息 多 个 activity 秘 诀 6: 使 用 按 钮 和 文 本 框 秘 诀 7: 通 过 事 件 启 动 另 外 一 个 activity 秘 诀 8: 将 语 音 转 换 成 文 本 并 启 动 activity 显 示 结 果 秘 诀 9: 实 现 选 择 列 表 秘 诀 10: 使 用 隐 式 intent 创 建 activity 秘 诀 11: 在 activity 间 传 递 基 本 数 据 类 型... 37
8 2 目 录 第 3 章 线 程 服 务 receiver 以 及 alert 对 话 框 线 程 秘 诀 12: 启 动 一 个 辅 助 线 程 秘 诀 13: 创 建 实 现 runnable 接 口 的 activity 秘 诀 14: 设 置 线 程 优 先 级 秘 诀 15: 取 消 线 程 秘 诀 16: 在 两 个 应 用 程 序 之 间 共 享 线 程 线 程 之 间 的 消 息 机 制 :handler 秘 诀 17: 从 主 线 程 调 度 runnable 任 务 秘 诀 18: 使 用 倒 数 计 时 器 秘 诀 19: 处 理 耗 时 的 初 始 化 工 作 服 务 添 加 broadcast receiver 应 用 微 件 alert 对 话 框 秘 诀 23: 使 用 Toast 在 屏 幕 上 显 示 简 短 消 息 秘 诀 24: 使 用 alert 对 话 框 秘 诀 25: 在 状 态 栏 中 显 示 通 知 第 4 章 用 户 界 面 布 局 资 源 目 录 及 其 基 本 属 性 view 和 viewgroup 秘 诀 27: 利 用 Eclipse 编 辑 器 生 成 布 局 秘 诀 28: 控 制 UI 元 素 的 宽 度 和 高 度 秘 诀 29: 设 置 相 对 布 局 和 布 局 ID 秘 诀 30: 通 过 编 程 声 明 布 局 秘 诀 31: 使 用 独 立 线 程 更 新 布 局 文 本 操 作 秘 诀 32: 设 置 和 更 改 文 本 属 性 秘 诀 33: 提 供 文 本 输 入 秘 诀 34: 创 建 表 单 其 他 控 件 : 从 按 钮 到 拖 动 条 秘 诀 35: 在 表 格 布 局 中 使 用 图 像 按 钮 秘 诀 36: 使 用 复 选 框 和 开 关 按 钮 秘 诀 37: 使 用 单 选 按 钮 秘 诀 38: 创 建 下 拉 菜 单 秘 诀 39: 使 用 进 度 条 秘 诀 40: 使 用 拖 动 条 第 5 章 用 户 界 面 事 件 事 件 处 理 器 和 事 件 监 听 器 秘 诀 41: 截 取 物 理 按 键 事 件 秘 诀 42: 创 建 菜 单 秘 诀 43: 在 XML 文 件 中 定 义 菜 单 秘 诀 44: 使 用 搜 索 键 秘 诀 45: 响 应 触 摸 事 件 秘 诀 46: 监 听 滑 动 手 势 秘 诀 47: 使 用 多 点 触 控 高 级 用 户 界 面 库 秘 诀 48: 使 用 手 势 秘 诀 49: 绘 制 3D 图 像 第 6 章 多 媒 体 技 术 图 像 音 频 秘 诀 51: 选 取 和 播 放 音 频 文 件 秘 诀 52: 录 制 音 频 文 件 秘 诀 53: 处 理 原 始 音 频 秘 诀 54: 有 效 使 用 音 频 资 源 秘 诀 55: 添 加 媒 体 资 源 并 更 新 路 径 视 频 第 7 章 硬 件 接 口 照 相 机 其 他 传 感 器 秘 诀 57: 获 取 设 备 旋 转 姿 态
9 目 录 秘 诀 58: 使 用 温 度 传 感 器 和 光 传 感 器 电 话 秘 诀 59: 使 用 电 话 管 理 器 秘 诀 60: 监 听 电 话 状 态 秘 诀 61: 拨 打 电 话 号 码 蓝 牙 秘 诀 62: 打 开 蓝 牙 秘 诀 63: 搜 索 蓝 牙 设 备 秘 诀 64: 与 已 绑 定 的 蓝 牙 设 备 配 对 秘 诀 65: 打 开 蓝 牙 套 接 字 秘 诀 66: 使 用 设 备 振 动 功 能 秘 诀 67: 访 问 无 线 网 络 第 8 章 网 络 通 信 使 用 短 信 息 使 用 Web 内 容 秘 诀 69: 定 制 Web 浏 览 器 秘 诀 70: 使 用 HTTP GET 请 求 秘 诀 71: 使 用 HTTP POST 请 求 社 交 网 络 第 9 章 数 据 存 储 方 法 shared preferences 秘 诀 73: 创 建 和 检 索 shared preferences 秘 诀 74: 使 用 preferences 框 架 秘 诀 75: 基 于 Stored Data 改 变 用 户 界 面 秘 诀 76: 添 加 最 终 用 户 许 可 协 议 SQLite 数 据 库 秘 诀 77: 创 建 一 个 独 立 的 数 据 库 包 秘 诀 78: 使 用 独 立 的 数 据 库 包 秘 诀 79: 创 建 个 人 日 记 内 容 提 供 器 保 存 和 载 入 文 件 第 10 章 基 于 位 置 的 服 务 位 置 服 务 入 门 秘 诀 81: 获 取 最 新 位 置 秘 诀 82: 在 位 置 改 变 时 更 新 信 息 秘 诀 83: 列 出 所 有 可 用 的 提 供 器 秘 诀 84: 将 位 置 解 析 为 地 址 ( 反 向 地 理 编 码 ) 秘 诀 85: 将 地 址 解 析 为 位 置 ( 地 理 编 码 ) 使 用 谷 歌 地 图 秘 诀 86: 在 应 用 程 序 中 添 加 谷 歌 地 图 秘 诀 87: 在 地 图 上 添 加 标 记 秘 诀 88: 在 地 图 上 添 加 视 图 秘 诀 89: 在 地 图 上 标 记 设 备 的 当 前 位 置 秘 诀 90: 设 置 临 近 警 告 第 11 章 Android 高 级 开 发 技 术 Android 的 自 定 义 视 图 Android 的 原 生 组 件 Android 的 安 全 机 制 Android 的 进 程 间 通 信 Android 的 备 份 管 理 器 秘 诀 95: 备 份 运 行 时 数 据 秘 诀 96: 备 份 文 件 到 云 端 秘 诀 97: 触 发 备 份 与 还 原 操 作 Android 的 动 画 功 能 第 12 章 调 试 Eclipse 内 置 的 调 试 工 具 秘 诀 99: 设 置 运 行 配 置 秘 诀 100: 使 用 DDMS
10 4 目 录 秘 诀 101: 断 点 调 试 Android SDK 中 的 调 试 工 具 秘 诀 102: 使 用 Android Debug Bridge 工 具 秘 诀 103: 使 用 LogCat 工 具 秘 诀 104: 使 用 Hierarchy Viewer 工 具 秘 诀 105: 使 用 TraceView 工 具 Android 系 统 调 试 工 具
11 1.1 Android 演 化 史 1 第 1 章 Android 概 述 A ndroid 操 作 系 统 自 2007 年 年 末 由 开 放 手 机 联 盟 (Open Handset Alliance) 发 布 以 来, 已 经 取 得 了 长 足 的 进 步 为 嵌 入 式 系 统 设 计 开 源 操 作 系 统 这 一 想 法 由 来 已 久, 但 谷 歌 的 积 极 支 持 无 疑 推 动 了 Android 在 短 短 数 年 时 间 就 跻 身 业 界 前 列 各 国 众 多 移 动 运 营 商 在 不 同 的 通 信 协 议 下 都 推 出 了 Android 手 机 Android 操 作 系 统 还 被 应 用 在 其 他 嵌 入 式 设 备 中, 如 平 板 电 脑 上 网 本 电 视 机 机 顶 盒, 甚 至 汽 车 也 开 始 使 用 它 了 本 章 将 介 绍 Android 开 发 的 各 种 一 般 性 问 题, 了 解 这 些 问 题 对 于 开 发 者 非 常 有 益 它 是 创 建 Android 应 用 程 序 的 基 础 知 识, 并 且 为 本 书 其 余 部 分 介 绍 的 编 程 秘 诀 提 供 了 背 景 知 识 1.1 Android 演 化 史 谷 歌 公 司 看 到 互 联 网 使 用 和 移 动 设 备 搜 索 的 巨 大 增 长 潜 力, 于 2005 年 收 购 了 Android 公 司, 并 主 攻 移 动 设 备 平 台 的 开 发 苹 果 公 司 于 2007 年 推 出 了 iphone 手 机, 带 来 了 多 触 点 和 开 放 的 应 用 程 序 市 场 等 一 些 具 有 开 创 性 的 想 法 Android 迅 速 跟 进, 将 这 些 功 能 囊 括 其 中, 还 提 供 一 些 特 有 的 功 能, 例 如 开 发 者 对 系 统 有 更 多 控 制 能 力, 实 现 多 任 务 功 能 等 此 外,Android 集 成 了 企 业 级 的 需 求, 如 支 持 交 流 远 程 擦 除 (wipe) 和 虚 拟 专 用 网 (VPN), 以 谋 求 赢 得 企 业 市 场 而 目 前 在 该 领 域 中,RIM 公 司 凭 借 其 黑 莓 机 型 发 展 得 很 好 对 多 种 设 备 的 支 持 和 快 速 应 变 使 得 Android 扩 大 了 其 用 户 规 模, 但 这 给 开 发 者 带 来 了 挑 战 应 用 程 序 需 要 支 持 五 花 八 门 的 屏 幕 尺 寸 分 辨 率 键 盘 硬 件 传 感 器 OS 版 本 无 线 数 据 传 输 速 率 和 系 统 配 置 每 项 处 理 不 当 都 可 能 导 致 不 可 预 知 的 诡 异 表 现, 但 又 不 可 能 在 所 有 环 境 下 都 做 应 用 程 序 测 试 因 此,Android 的 设 计 力 求 在 跨 平 台 时 可 以 获 得 一 致 的 体 验 通 过 将 硬 件 差 异 抽 象 处 理, Android 操 作 系 统 试 图 将 应 用 和 具 体 设 备 差 异 隔 离 开, 同 时 在 需 要 时 还 可 以 灵 活 调 整 应 用 程 序 要 兼 容 未 来 的 变 化, 以 适 应 新 的 硬 件 平 台 和 操 作 系 统, 这 也 是 要 事 先 考 虑 的 只 有 开 发 者 意 识 到 这 种 系 统 化 的 方 法, 才 能 做 到 这 一 点 Android 提 供 的 通 用 API 和 如 何 确 保 设 备 和 操 作 系 统 的 兼 容 性 是 贯 穿 本 书 的 讨 论 主 题 和 任 何 嵌 入 式 平 台 相 同, 我 们 必 须 进 行 全 面 的 测 试 谷 歌 通 过 Android 开 发 工 具 (ADT, 该 工 具 是 Eclipse 的 插 件, 也 可 作 为 独 立 的 工 具 使 用 ) 向 第 三 方 开 发 者 提 供 了 各 种 形 式 的 帮 助, 包 括
12 2 第 1 章 Android 概 述 实 时 日 志 功 能 可 以 运 行 原 生 ARM 代 码 的 仿 真 模 拟 器, 另 外, 用 户 可 以 向 Android Market 应 用 的 开 发 者 提 交 现 场 错 误 报 告 1.2 Android 的 两 面 性 Android 有 一 些 有 趣 的 两 面 性 提 前 知 晓 这 些 内 容 有 助 于 了 解 Android 是 什 么 及 不 是 什 么 Android 是 一 个 由 Linux 内 核 提 供 核 心 系 统 服 务 的 嵌 入 式 操 作 系 统, 但 它 不 是 嵌 入 式 的 Linux 例 如, 它 不 支 持 标 准 的 Linux 工 具, 如 X-Windows 和 GNU C 库 我 们 使 用 Java 框 架 编 写 Android 的 应 用 程 序, 但 它 不 是 Java 语 言, 并 不 支 持 Swing 等 标 准 Java 库 其 他 Java 库, 如 Timer 等, 也 不 支 持, 它 们 已 被 Android 自 己 的 库 替 代, 这 些 库 已 针 对 资 源 有 限 的 嵌 入 式 环 境 进 行 了 优 化 Android 的 操 作 系 统 开 放 源 代 码, 这 意 味 着 开 发 人 员 可 以 查 看 和 使 用 任 何 系 统 的 源 代 码, 包 括 射 频 协 议 栈 (radio stack) 这 些 源 代 码 是 大 家 了 解 Android 代 码 运 行 原 理 的 第 一 手 资 料, 在 文 档 缺 乏 的 情 况 下 可 以 作 为 参 考 这 也 意 味 着 开 发 人 员 可 以 遵 照 系 统 核 心 程 序 那 样 的 方 式 使 用 系 统, 可 以 用 他 们 自 己 的 组 件 替 换 系 统 组 件 不 过,Android 设 备 也 包 含 一 些 开 发 者 无 法 访 问 的 专 有 软 件, 如 全 球 定 位 系 统 导 航 Android OS 的 最 后 一 个 两 面 性 特 点 是 谷 歌 还 支 持 Chrome OS Android OS 专 为 嵌 入 式 平 台 构 建, 而 Chrome OS 基 于 云 计 算 平 台 构 建 然 而, 哪 个 操 作 系 统 才 是 基 于 云 端 的 嵌 入 式 设 备 的 最 好 选 择? 上 网 本 填 补 了 智 能 手 机 和 笔 记 本 电 脑 之 间 的 空 白, 两 者 都 有 可 能 会 是 其 发 展 方 向 ( 实 际 上 已 经 呈 现 了 这 样 的 趋 势 ) Android 已 经 开 始 更 多 地 利 用 云 服 务 这 是 否 意 味 着 Chrome OS 的 末 路 指 日 可 待? 谷 歌 同 时 也 支 持 基 于 Web 的 市 场, 因 此 Chrome OS 目 前 享 有 和 Android 同 等 的 开 发 者 支 持 这 或 许 表 明 未 来 的 融 合 早 已 在 筹 划 之 中 1.3 运 行 Android 的 设 备 市 场 上 目 前 有 十 多 个 制 造 商 提 供 四 十 余 种 Android 手 机 此 外, 其 他 硬 件 也 运 行 Android, 如 平 板 电 脑 和 电 视 机 软 件 可 以 通 过 android.os.build 类 获 得 目 标 设 备 的 信 息, 例 如 : 由 于 其 操 作 系 统 的 特 质,Android 支 持 的 硬 件 具 有 一 些 共 同 的 特 性 Android OS 由 以 下 image 文 件 组 成 : Bootloader 在 设 备 启 动 时 开 始 加 载 Boot image; Boot image Kernel 和 RAMdisk; System image Android 操 作 系 统 平 台 和 应 用 程 序 ; Data image 断 电 后 保 存 的 用 户 数 据 ; Recovery image 重 建 或 更 新 系 统 所 用 的 文 件 ; Radio image 射 频 协 议 栈 文 件 这 些 image 文 件 存 储 在 非 易 失 性 闪 存 中, 因 此 在 设 备 断 电 时 仍 然 不 会 丢 失 闪 存 使 用 起 来 相 当 于 只 读 存 储 器 ( 因 此 有 人 称 之 为 ROM), 但 可 以 在 需 要 时 将 其 重 写 ( 例 如,Android 操 作 系 统 无
13 1.3 运 行 Android 的 设 备 3 线 升 级 ) 启 动 时, 微 处 理 器 执 行 Bootloader 来 加 载 内 核 和 RAMdisk 到 RAM 中, 以 快 速 存 取 然 后, 微 处 理 器 执 行 所 需 的 指 令 系 统 页 面 和 数 据 镜 像 到 RAM Radio image 由 基 带 处 理 器 处 理, 后 者 直 接 连 接 到 射 频 硬 件 表 1-1 比 较 了 早 期 和 近 期 推 出 的 智 能 手 机 机 型 结 果 表 明, 不 同 设 备 的 运 算 处 理 部 分 的 硬 件 结 构 非 常 相 似, 都 包 括 微 处 理 器 单 元 (MPU) 同 步 动 态 随 机 存 取 记 忆 体 (SDRAM 或 简 称 RAM) 以 及 闪 存 ( 简 称 ROM) 等 屏 幕 大 小 通 过 像 素 (pixel) 来 衡 量, 但 每 英 寸 点 数 (dpi) 不 同 的 物 理 屏 幕 是 不 相 同 的 例 如,HTC Magic 手 机 采 用 像 素 的 3.2 英 寸 屏 幕, 这 相 当 于 每 英 寸 180 像 素, 在 Android 手 机 中 处 于 中 等 水 平 ( 平 均 水 平 为 160 dpi) 所 有 的 智 能 手 机 都 配 备 了 CMOS 图 像 传 感 器 的 摄 像 头 蓝 牙 (BT) 和 Wi-Fi(802.11), 当 然 规 格 各 异 表 1-1 一 些 有 代 表 性 的 Android 智 能 手 机 数 据 来 源 于 和 型 号 MPU RAM/ROM 屏 幕 其 他 特 性 HTC Dream/G1 (2008 年 10 月 ) 三 星 Moment (2009 年 11 月 ) 摩 托 罗 拉 Milestone/Droid (2009 年 11 月 ) Nexus One/HTC Passion(2010 年 1 月 ) HTC Droid Incredible (2010 年 4 月 ) HTC EVO 4G (2010 年 6 月 ) 摩 托 罗 拉 Droid X (2010 年 6 月 ) 索 爱 Xperia X10a (2010 年 6 月 ) 三 星 Galaxy S Pro (2010 年 8 月 ) 宏 碁 Stream/ Liquid (2010 年 9 月 ) 528-MHz QCOM MSM7201A 800-MHz ARM 1176 JZF-S 550-MHz OMAP3430 TI 1-GHz QCOM Snapdragon 1-GHz QCOM Snapdragon 1-GHz QCOM Snapdragon 1-GHz OMAP3630 TI 1-GHz QCOM Snapdragon 1-GHz 三 星 Hummingbird 1-GHz QCOM Snapdragon 192 MB/256 MB TFT LCD mdpi 288 MB/512 MB AMOLED mdpi 256 MB/512 MB TFT LCD hdpi 512 MB/512 MB AMOLED hdpi 512 MB/512 MB AMOLED hdpi 512 MB/1 GB AMOLED hdpi 512 MB/8 GB TFT LCD hdpi 256 MB/1 GB TFT LCD hdpi 512 MB/2 GB AMOLED hdpi 512 MB/512 MB AMOLED hdpi GSM/UMTS 侧 滑 式 键 盘 轨 迹 球 AGPS, 蓝 牙 b/g 310 万 像 素 摄 像 头 CDMA/1xEV-DO, 侧 滑 式 键 盘 ( 带 背 光 ) DPAD, 蓝 牙 b/g 310 万 像 素 摄 像 头,AGPS GSM/UMTS 或 CDMA/1xEV-DO, 侧 滑 式 键 盘 DPAD, 蓝 牙 b/g 500 万 像 素 摄 像 头,AGPS GSM/UMTS 轨 迹 球 双 麦 克 风, 蓝 牙 a/b/g/n 500 万 像 素 摄 像 头, AGPS 地 理 标 记 功 能 CDMA/1xEV-DO, 蓝 牙 a/b/g/n 800 万 像 素 摄 像 头,AGPS 地 理 标 记 功 能 CDMA/1xEV-DO/802.16e-2005, 蓝 牙 b/g 800 万 像 素 摄 像 头,130 万 像 素 前 置 摄 像 头 AGPS CDMA/1xEV-DO 调 频 收 音 机, 蓝 牙 b/g/n 800 万 像 素 摄 像 头, AGPS 地 理 标 记 功 能 GSM/UMTS 调 频 收 音 机, 蓝 牙 b/g 800 万 像 素 摄 像 头,AGPS 地 理 标 记 功 能 CDMA/1xEV-DO 调 频 收 音 机, 侧 滑 式 键 盘, 蓝 牙 b/g/n 500 万 像 素 摄 像 头,30 万 像 素 前 置 摄 像 头 AGPS GSM/UMTS 调 频 收 音 机, 蓝 牙 b/g/n 500 万 像 素 摄 像 头,AGPS 地 理 标 记 功 能
14 4 第 1 章 Android 概 述 除 了 在 容 量 和 性 能 上 有 所 改 善 外, 较 新 型 号 的 另 一 个 主 要 特 色 是 附 加 功 能 有 些 设 备 提 供 了 4G 网 络, 有 的 添 加 了 调 频 收 音 机, 有 的 具 有 侧 滑 式 键 盘, 还 有 的 配 备 了 前 置 摄 像 头 了 解 设 备 的 这 些 差 异 有 助 于 开 发 人 员 做 出 优 秀 的 应 用 除 了 那 些 内 置 硬 件 外, 每 个 Android 设 备 都 有 安 全 数 字 (SD) 卡 插 槽 SD 卡 可 提 供 额 外 的 存 储 空 间, 用 来 存 储 多 媒 体 等 应 用 程 序 数 据 然 而, 在 Andorid 2.2 版 以 前, 应 用 程 序 本 身 只 能 存 储 在 内 部 ROM 中 HTC 系 列 机 型 HTC( 宏 达 ) 是 一 家 成 立 于 1997 年 的 台 湾 公 司 HTC Dream( 也 称 为 G1,G 指 代 谷 歌 ) 是 第 一 个 运 行 Android 的 商 用 硬 件 该 机 型 于 2008 年 10 月 发 布 从 那 时 开 始 到 现 在,HTC 已 推 出 了 十 多 款 运 行 Android 的 手 机, 包 括 谷 歌 公 司 的 Nexus One Nexus One 是 第 一 批 使 用 1 GHz 微 处 理 器 的 Android 设 备, 这 种 微 处 理 器 是 高 通 公 司 (Qualcomm) 的 Snapdragon 平 台 Snapdragon 使 用 了 高 通 自 己 的 内 核, 而 非 ARM 内 核, 它 包 含 有 720 p 高 清 晰 度 视 频 解 码 电 路 在 此 之 后 的 大 部 分 智 能 手 机 都 采 用 了 1 GHz 的 微 处 理 器 Nexus One 的 特 别 之 处 还 在 于 使 用 两 个 麦 克 风 削 减 通 话 时 的 背 景 噪 音, 以 及 配 备 了 背 光 轨 迹 球, 可 根 据 通 知 显 示 不 同 颜 色 的 灯 光 HTC 还 于 2010 年 4 月 发 布 了 Droid Increadible 机 型 如 表 1-1 所 示, 它 和 Nexus One 类 似, 但 基 于 CDMA 而 不 是 GSM 射 频 硬 件, 并 具 有 更 高 像 素 的 摄 像 头 在 2010 年 6 月 发 布 的 HTC EVO 4G 是 第 一 款 支 持 WiMAX(802.16e-2005 标 准 ) 的 商 用 手 机 摩 托 罗 拉 系 列 机 型 20 世 纪 80 年 代 摩 托 罗 拉 制 造 了 第 一 部 手 机, 并 在 手 机 市 场 上 取 得 多 方 面 的 成 功 它 的 无 线 通 信 部 门 对 于 发 展 方 向 摇 摆 不 定, 直 到 最 近 才 把 重 点 放 在 Android 上 摩 托 罗 拉 Droid 的 CDMA 版 本 ( 它 的 GSM 版 本 就 是 闻 名 全 球 的 Milestone 1 ) 于 2009 年 11 月 发 布, 很 多 人 也 确 实 认 为 这 是 Android 发 展 的 一 个 重 要 的 里 程 碑 Droid 手 机 的 影 响 力 很 明 显, 访 问 Android Market 的 相 当 多 的 手 机 都 是 Droid 手 机 此 外, 摩 托 罗 拉 已 经 推 出 了 近 十 款 其 他 Android 手 机 摩 托 罗 拉 Droid X 手 机 具 有 和 HTC Droid Incredible 相 似 的 功 能, 包 括 高 清 视 频 拍 摄 功 能 三 星 系 列 机 型 三 星 一 直 是 移 动 市 场 的 重 要 力 量, 目 前, 已 经 开 始 发 展 自 己 的 Android 设 备 三 星 于 2009 年 11 月 推 出 了 三 星 Moment 手 机, 但 不 具 备 多 点 触 摸 硬 件 功 能, 不 能 升 级 到 Android 2.1 以 上 版 本 在 特 定 市 场 销 售 的 配 备 了 移 动 电 视 天 线 的 定 制 版 本 可 移 动 接 收 ATSC 信 号 三 星 Galaxy S 是 三 星 对 于 iphone 的 回 应 众 所 周 知,iPhone 3G 和 3GS 使 用 了 三 星 处 理 器, 三 星 为 Galaxy S 开 发 了 具 有 ARM Cortex-8 核 心 的 1GHz 的 Hummingbird( 蜂 鸟 ) 处 理 器 这 也 是 第 一 批 兼 容 蓝 牙 3.0 的 手 机 1 Milestone, 该 款 手 机 的 上 市 名 称, 中 文 意 思 为 里 程 碑, 有 双 关 之 意 译 者 注
15 1.4 Android 设 备 的 硬 件 差 异 平 板 电 脑 苹 果 公 司 推 出 ipad 之 后,Andriod 制 造 商 也 非 常 期 望 推 出 他 们 自 己 的 平 板 电 脑 平 板 电 脑 一 般 具 有 4.8 英 寸 或 更 大 的 屏 幕, 带 有 Wi-Fi 连 接 由 于 很 多 平 板 电 脑 使 用 3G 网 络 无 线 服 务, 它 们 更 像 是 大 屏 幕 的 智 能 手 机 爱 可 视 公 司 (Archos) 是 最 早 在 2009 年 年 底 向 市 场 推 出 Android 平 板 电 脑 的 厂 商 之 一 这 款 平 板 电 脑 具 有 4.8 英 寸 的 屏 幕, 被 称 为 Archos 5 爱 可 视 在 此 之 前 已 经 推 出 了 7 英 寸 机 型 Archos 7 这 些 机 型 配 备 了 硬 盘 驱 动 器, 可 以 存 储 更 多 的 数 据 戴 尔 公 司 推 出 了 5 英 寸 屏 幕 的 Sreak 平 板 电 脑, 还 计 划 推 出 配 备 7 英 寸 屏 幕 和 10 英 寸 屏 幕 的 机 型 三 星 公 司 则 推 出 了 7 英 寸 屏 幕 的 Galaxy Tab 平 板 电 脑 这 些 平 板 电 脑 中 的 很 多 型 号 都 有 一 个 缺 点, 就 是 无 法 访 问 Android Market, 但 情 况 应 该 很 快 就 会 改 变 表 1-2 比 较 了 一 些 型 号 的 平 板 电 脑 表 1-2 一 些 有 代 表 性 的 Android 平 板 电 脑 型 号 MPU RAM/disk 屏 幕 其 他 特 性 爱 可 视 5(2009 年 9 月 ) 爱 可 视 7(2010 年 6 月 ) 戴 尔 Streak(2010 年 6 月 ) 三 星 Galaxy Tablet GT-P1000(2010 年 9 月 ) 其 他 设 备 800-MHz TI OMAP MB/8 GB TFT LCD 4.8 英 寸 MHz Rockchip RK MB/8 GB TFT LCD 7 英 寸 GHz QCOM Snapdragon 256 MB/512 MB TFT LCD 5 英 寸 GHz 三 星 Hummingbird 512 MB/16 GB TFT LCD 7 英 寸 蓝 牙 b/g/n 调 频 收 音 机 b/g GSM/UMTS 蓝 牙 b/g 500 万 像 素 摄 像 头 30 万 像 素 前 置 摄 像 头, AGPS 地 理 标 记 功 能 GSM/UMTS, 蓝 牙 b/g/n 310 万 像 素 摄 像 头 Android 是 一 个 通 用 的 嵌 入 式 平 台, 除 智 能 手 机 和 平 板 电 脑 以 外, 也 可 以 在 许 多 其 他 行 业 使 用 第 一 款 带 有 Android 设 备 的 汽 车 是 由 上 海 汽 车 工 业 总 公 司 制 造 的 荣 威 350 Andorid 主 要 用 于 GPS 导 航, 但 也 可 以 进 行 网 页 浏 览 第 一 款 基 于 Android 的 电 视 是 Google TV, 它 是 谷 歌 的 软 件 索 尼 的 电 视 机 英 特 尔 的 处 理 器 和 罗 技 的 机 顶 盒 相 结 合 的 产 物 它 将 互 联 网 自 然 而 然 地 引 入 了 电 视 机, 但 它 也 提 供 了 从 电 视 机 访 问 Android Market 的 功 能 1.4 Android 设 备 的 硬 件 差 异 Android 设 备 在 硬 件 上 会 有 一 些 差 异, 如 表 1-1 所 示 一 般 来 说, 大 部 分 的 差 异 对 开 发 者 都 是 透 明 的, 不 在 本 书 中 进 一 步 讨 论 但 是, 了 解 一 些 硬 件 差 异 有 助 于 我 们 编 写 设 备 无 关 的 代 码 此 处 我 们 将 讨 论 屏 幕 用 户 输 入 方 法 和 传 感 器 等 屏 幕 液 晶 显 示 屏 (LCD) 和 发 光 二 极 管 (LED) 是 显 示 屏 使 用 的 两 种 技 术 这 两 者 具 体 体 现 在
16 6 第 1 章 Android 概 述 Android 手 机 上, 就 是 使 用 薄 膜 晶 体 管 (TFT) 的 LCD 显 示 屏 和 使 用 有 源 矩 阵 有 机 发 光 二 极 管 显 示 屏 (AMOLED) TFT 显 示 屏 的 优 势 在 于 使 用 寿 命 较 长, 而 AMOLED 显 示 屏 的 优 势 在 于 没 有 背 光, 因 此, 显 示 的 黑 色 更 深 且 功 耗 较 低 总 的 来 说,Android 设 备 可 按 小 正 常 大 屏 幕 来 分, 也 可 按 低 中 高 像 素 密 度 来 分 请 注 意, 实 际 像 素 密 度 可 能 会 有 所 不 同, 但 肯 定 是 其 中 之 一 表 1-3 总 结 了 目 前 已 有 设 备 的 屏 幕 情 况 请 注 意, 表 1-1 列 出 了 不 同 设 备 的 屏 幕 密 度 类 型 表 1-3 Android 支 持 的 设 备 屏 幕 汇 总 屏 幕 类 型 低 密 度 (~120 ppi), l dpi 中 密 度 (~160 ppi), mdpi 高 密 度 (~240 ppi), hdpi 小 屏 幕 正 常 屏 幕 QVGA( ), 2.6 英 寸 到 3.0 英 寸 对 角 线 WQVGA( ), 3.2 英 寸 到 3.5 英 寸 对 角 线 FWQVGA( ), 3.5 英 寸 到 3.8 英 寸 对 角 线 HVGA( ),3.0 英 寸 到 3.5 英 寸 对 角 线 大 屏 幕 WVGA( ),4.8 英 寸 到 5.5 英 寸 对 角 线 FWVGA( ),5.0 英 寸 到 5.8 英 寸 对 角 线 用 户 输 入 方 式 触 摸 屏 使 用 户 能 够 和 视 觉 显 示 互 动 目 前 有 下 列 三 种 触 摸 屏 技 术 WVGA( ),3.3 英 寸 到 4.0 英 寸 对 角 线 FWVGA( ),3.5 英 寸 到 4.0 英 寸 对 角 线 电 阻 屏 在 玻 璃 屏 幕 的 顶 部 覆 盖 了 两 层 电 阻 材 料 层 当 手 指 手 写 笔 或 任 何 对 象 下 压 时, 这 两 层 接 触 在 一 起, 触 摸 的 位 置 就 能 被 确 定 电 阻 触 摸 屏 的 性 价 比 高, 但 透 光 率 只 有 75%, 而 且 最 近 才 实 现 多 点 触 摸 电 容 屏 在 玻 璃 屏 幕 上 覆 盖 有 一 个 带 电 材 料 层 当 手 指 或 任 何 导 电 物 体 接 触 该 层, 会 引 起 电 量 的 变 化, 改 变 电 容, 就 可 以 测 量 出 接 触 的 位 置 电 容 式 触 摸 屏 的 透 光 度 高 达 90%, 但 是 其 精 度 要 比 电 阻 屏 差 表 面 声 波 这 里 运 用 了 一 种 更 加 先 进 的 方 法, 发 送 和 接 收 超 声 波 来 定 位 当 手 指 或 任 何 物 体 碰 触 屏 幕 时, 声 波 会 被 吸 收 可 以 测 量 声 波 以 确 定 碰 触 的 位 置 这 是 一 种 最 经 久 耐 用 的 解 决 方 案, 更 适 合 于 大 屏 幕, 如 银 行 的 自 动 柜 员 机 所 有 Android 设 备 均 使 用 电 阻 或 电 容 触 摸 屏 技 术, 并 且 除 了 一 些 早 期 的 设 备 之 外 都 支 持 多 点 触 摸 此 外,Android 的 设 备 还 配 备 了 触 摸 屏 的 替 代 方 法 可 采 用 下 列 方 法 之 一 : D-pad 十 字 键 盘 ( 方 向 键 ) 一 个 有 上 下 左 右 方 向 的 控 制 杆 ; 轨 迹 球 一 种 滚 珠, 类 似 于 鼠 标 的 指 针 设 备 ; 触 控 板 一 种 特 殊 的 长 方 形 表 面, 用 作 指 针 设 备 传 感 器 在 某 种 程 度 上, 智 能 手 机 正 在 成 为 一 个 传 感 器 中 心, 为 用 户 提 供 了 丰 富 的 体 验 麦 克 风 之 后,
17 1.4 Android 设 备 的 硬 件 差 异 7 在 手 机 上 出 现 的 第 一 个 附 加 传 感 器 就 是 摄 像 头 不 同 手 机 的 摄 像 头 的 性 能 差 异 很 大, 已 经 成 为 影 响 人 们 选 择 手 机 的 一 个 重 要 因 素 现 在 的 附 加 传 感 器 也 存 在 这 种 多 样 性 大 部 分 的 智 能 手 机 至 少 具 有 三 种 基 本 的 传 感 器 : 一 个 三 轴 加 速 度 计, 用 于 测 量 重 力 加 速 度 ; 一 个 三 轴 磁 力 计, 用 来 测 量 周 围 的 磁 场 ; 还 有 一 个 温 度 传 感 器, 用 来 测 量 环 境 温 度 例 如,HTC Dream(G1) 手 机 包 含 下 列 传 感 器 ( 可 通 过 getsensorlist() 方 法 显 示, 将 在 第 7 章 进 一 步 介 绍 ): AK8976A 三 轴 加 速 度 计 AK8976A 三 轴 磁 场 传 感 器 AK8976A 方 向 传 感 器 AK8976A 温 度 传 感 器 AK8976A 是 旭 化 成 微 系 统 公 司 (AKM) 的 元 件, 整 合 了 压 阻 式 加 速 度 计 霍 尔 效 应 磁 强 计 和 温 度 传 感 器 所 有 传 感 器 均 提 供 8 位 精 度 的 数 据 方 向 传 感 器 是 一 个 虚 拟 传 感 器, 结 合 使 用 加 速 度 计 和 磁 强 计 确 定 方 向 相 比 之 下, 摩 托 罗 拉 Droid 手 机 中 包 含 了 以 下 传 感 器 : LIS331DLH 三 轴 加 速 度 计 AK8973 三 轴 磁 场 传 感 器 AK8973 温 度 传 感 器 SFH7743 近 距 离 传 感 器 方 向 传 感 器 LM3530 光 传 感 器 LIS331DLH 是 意 法 半 导 体 公 司 (ST Microelectronics) 生 产 的 12 位 电 容 式 加 速 度 计 它 提 供 了 更 准 确 的 数 据, 并 且 其 采 样 频 率 可 达 1 khz AK8973 是 AKM 封 装 包, 包 含 了 8 位 霍 尔 效 应 磁 强 计 和 温 度 传 感 器 此 外,Droid 还 包 含 两 个 其 他 传 感 器 SFH7743 是 光 电 半 导 体 的 短 距 离 近 场 探 测 器, 用 于 在 物 体 ( 如 耳 朵 ) 贴 近 屏 幕 40 毫 米 距 离 时 关 闭 屏 幕 LM3530 是 美 国 国 家 半 导 体 生 产 的 可 编 程 光 传 感 器, 可 检 测 环 境 光 并 调 节 屏 幕 背 光 和 LED 闪 光 灯 到 适 当 亮 度 配 备 传 感 器 的 Android 设 备 还 有 HTC EVO 4G 手 机, 它 具 有 以 下 传 感 器 : BMA150 三 轴 加 速 度 计 AK8973 三 轴 磁 场 传 感 器 AK8973 方 向 传 感 器 CM3602 近 距 离 传 感 器 CM3602 光 传 感 器 BMA150 是 博 世 传 感 器 公 司 生 产 的 10 位 加 速 计, 可 提 供 高 达 1.5 khz 的 采 样 频 率 CM3602 是 Capella 公 司 生 产 的 短 距 离 近 距 离 传 感 器 和 环 境 光 感 应 器 的 组 合 产 品 总 体 而 言, 不 同 型 号 的 Android 设 备 具 有 不 同 的 底 层 硬 件 这 些 差 异 会 导 致 性 能 和 传 感 器 的
18 8 第 1 章 Android 概 述 精 度 上 的 差 异 1.5 Android 的 特 点 Android 的 详 细 特 性 和 运 用 方 法 是 贯 穿 全 书 的 主 题 从 更 宽 泛 的 层 面 来 看,Android 的 一 些 主 要 特 点 就 是 其 主 要 卖 点 和 差 异 化 特 点 我 们 最 好 要 清 楚 认 识 到 这 些 要 点, 并 且 尽 可 能 利 用 它 们 多 进 程 和 应 用 程 序 微 件 Android 的 操 作 系 统 不 限 制 处 理 器 在 同 一 时 刻 只 能 执 行 一 个 应 用 程 序 系 统 在 单 个 应 用 程 序 中 管 理 应 用 程 序 和 线 程 的 优 先 级 这 样 做 的 好 处 在 于, 当 用 户 使 用 设 备 运 行 前 台 进 程 时, 后 台 任 务 可 以 同 时 运 行 例 如, 在 用 户 玩 游 戏 时, 后 台 进 程 可 以 查 询 股 票 价 格, 在 必 要 时 触 发 警 告 框 微 件 (Widget) 是 一 类 小 型 应 用 程 序, 可 以 嵌 入 到 其 他 应 用 程 序 中 ( 如 主 屏 幕 ) 它 们 能 够 在 其 他 应 用 程 序 正 在 运 行 时 处 理 事 件, 例 如 启 动 一 个 音 乐 流 媒 体 或 显 示 外 界 温 度 多 进 程 提 供 了 丰 富 的 用 户 体 验 但 是, 必 须 小 心 避 免 费 电 的 应 用 程 序 耗 尽 电 池 多 进 程 的 特 点 将 在 第 3 章 进 一 步 讨 论 触 摸 手 势 和 多 点 触 控 触 摸 屏 是 手 持 设 备 上 的 一 种 直 观 用 户 界 面 如 果 使 用 巧 妙, 许 多 操 作 可 以 无 师 自 通 当 手 指 触 摸 屏 幕 时, 拖 动 和 翻 转 是 用 户 和 图 形 交 互 的 自 然 方 式 多 点 触 控 可 在 同 一 时 间 跟 踪 按 下 的 多 个 手 指, 通 常 是 用 来 缩 放 或 旋 转 视 图 一 些 触 摸 事 件 是 对 开 发 者 透 明 的, 不 需 要 ( 编 程 ) 实 现 其 具 体 的 行 为 可 以 根 据 需 要 自 定 义 手 势 重 要 的 是 触 摸 事 件 的 用 法 要 与 其 他 应 用 程 序 尽 量 保 持 一 致 这 些 触 摸 事 件 将 在 第 5 章 进 一 步 讨 论 硬 键 盘 和 软 键 盘 便 携 的 口 袋 型 设 备 (pocket device) 使 用 户 感 兴 趣 的 一 个 特 点 是, 到 底 是 用 一 个 实 体 ( 也 称 为 硬 ) 键 盘 还 是 软 件 ( 也 称 为 软 ) 键 盘 实 体 键 盘 有 真 实 触 感, 各 键 位 置 明 确, 这 会 让 一 些 人 打 字 更 快, 而 另 一 些 人 则 喜 欢 软 键 盘 输 入 简 洁 明 快 的 设 计 和 用 起 来 方 便 Android 设 备 种 类 繁 多, 这 两 种 类 型 都 可 以 找 到 对 于 开 发 者 而 言, 副 作 用 是 两 者 都 需 要 支 持 软 键 盘 的 缺 点 是 占 用 了 一 部 分 屏 幕 空 间, 专 门 用 于 输 入, 而 开 发 者 需 要 考 虑 到 这 一 点, 在 多 个 用 户 界 面 (UI) 布 局 中 进 行 测 试 1.6 Android 开 发 这 本 书 关 注 的 重 点 是 编 写 Android 代 码, 这 是 Android 开 发 的 主 要 方 面 不 过, 我 们 也 会 适 当 地 讲 解 其 他 方 面 的 开 发 知 识, 包 括 设 计 和 发 布 等 方 面 的 内 容 如 何 使 用 本 书 中 的 秘 诀 一 般 来 说, 本 书 中 的 代 码 秘 诀 是 完 整 的, 包 括 在 Android 设 备 上 运 行 可 用 应 用 程 序 必 需 的 所
19 1.6 Android 开 发 9 有 信 息 在 第 2 章 会 讲 到, 运 行 应 用 程 序 还 需 要 多 个 用 户 生 成 文 件 甚 至 范 例 中 只 要 有 一 个 文 件 缺 失 就 会 对 那 些 不 熟 悉 Android 设 置 的 用 户 造 成 不 便 因 此, 每 个 秘 诀 都 包 含 必 要 的 文 件, 使 代 码 可 以 正 常 运 行 每 个 代 码 文 件 列 出 时 都 以 完 整 的 文 件 名 作 为 列 表 标 题, 这 有 助 于 找 到 该 文 件 在 Android 工 程 中 的 位 置 同 时, 如 果 一 下 子 给 出 太 多 文 件, 反 而 会 让 人 分 不 清 要 实 现 什 么 功 能 因 此, 本 书 示 例 采 取 了 两 种 稍 微 不 同 于 常 规 应 用 程 序 的 编 码 风 格 代 码 中 不 包 含 太 多 注 释 正 文 会 比 较 详 细 地 解 释 代 码, 而 加 粗 的 代 码 则 表 示 特 殊 的 技 术 要 点 在 日 常 编 程 实 践 中, 程 序 员 应 在 代 码 中 多 写 些 注 释 显 式 声 明 字 符 串, 而 不 使 用 全 局 资 源 把 字 符 串 定 义 为 全 局 资 源 是 个 好 办 法, 将 在 第 4 章 中 详 细 讨 论, 并 配 有 多 个 范 例 但 是 本 书 中, 当 某 个 秘 诀 只 用 到 少 量 字 符 串 时, 则 会 显 式 声 明 字 符 串, 而 不 是 为 定 义 它 们 去 引 入 一 个 额 外 的 文 件 初 学 Andorid 的 人 非 常 适 合 使 用 安 装 了 Android 插 件 的 Eclipse 作 为 Android 开 发 环 境 正 如 第 2 章 中 所 讨 论 的, 这 可 确 保 Android 工 程 设 置 和 环 境 恰 当 配 置,Eclipse 甚 至 增 加 了 图 标 占 位 符 该 工 具 也 有 助 于 执 行 更 高 级 的 任 务, 如 为 发 布 签 名 应 用 程 序 Android 软 件 开 发 工 具 包 (SDK) 中 的 模 拟 器 在 实 际 应 用 过 程 中 很 有 价 值, 如 果 能 在 真 实 的 Android 设 备 上 运 行 应 用 程 序 就 更 好 了 使 用 真 实 设 备 可 以 加 快 开 发 速 度, 提 供 更 真 实 的 测 试 本 书 中 所 有 代 码 示 例 均 已 经 在 运 行 Android 2.1 的 真 实 设 备 上 测 试 过, 并 根 据 需 要, 有 的 还 在 Android 1.5 或 Android 2.2 上 进 行 了 测 试 在 使 用 模 拟 器 时, 某 些 功 能 ( 例 如, 蓝 牙 配 对 或 传 感 器 的 变 化 ) 难 以 模 拟, 对 开 发 者 不 透 明 因 此, 建 议 初 步 测 试 都 在 Android 设 备 上 完 成 好 好 设 计 应 用 程 序 一 个 好 的 应 用 程 序 应 该 是 三 好 生 : 好 创 意, 好 编 码, 好 设 计 通 常 情 况 下, 最 后 一 个 要 素 是 最 容 易 被 忽 略 的, 因 为 大 多 数 开 发 人 员 是 独 立 工 作 的, 他 们 不 是 平 面 设 计 师 谷 歌 肯 定 意 识 到 了 这 一 点, 它 推 出 了 一 系 列 设 计 指 南, 包 括 图 标 设 计 微 件 设 计 activity 及 任 务 设 计 菜 单 设 计 可 通 过 如 下 网 址 访 问 : 好 设 计 这 一 点 应 该 要 再 三 强 调 好 的 设 计 可 以 让 应 用 程 序 独 树 一 帜, 让 用 户 更 容 易 接 受, 并 得 到 用 户 的 认 可 Android Market 上 一 些 最 成 功 的 应 用 程 序 都 是 平 面 设 计 师 和 开 发 者 合 作 的 成 果 程 序 开 发 时 应 该 专 门 安 排 一 大 块 时 间 用 于 考 虑 如 何 做 出 最 佳 设 计 保 持 向 前 兼 容 新 的 Android 版 本 通 常 在 API 层 面 上 让 功 能 渐 进 增 强, 并 向 前 兼 容 事 实 上, 只 有 当 一 个 设 备 通 过 Android API 兼 容 测 试 后 才 可 被 称 为 Android 设 备 然 而, 如 果 应 用 程 序 改 变 了 底 层 系 统, 就 无 法 保 证 其 兼 容 性 为 了 确 保 未 来 Android 更 新 安 装 到 设 备 上 时 符 合 向 前 兼 容 性, 应 该 遵 循 谷 歌 的 下 列 建 议 不 使 用 内 部 API 或 不 受 支 持 的 API 不 在 没 有 与 用 户 交 流 的 情 况 下 直 接 操 作 设 置 未 来 版 本 可 能 出 于 安 全 原 因, 限 制 某 些 设
20 10 第 1 章 Android 概 述 置 例 如, 曾 经 应 用 程 序 可 自 己 打 开 GPS 或 数 据 漫 游, 但 是 目 前 已 经 不 允 许 了 页 面 布 局 不 走 极 端 虽 然 这 种 情 况 很 罕 见, 但 复 杂 布 局 ( 深 度 超 过 10 或 是 总 数 超 过 30) 就 会 导 致 程 序 崩 溃 不 要 对 硬 件 作 出 错 误 的 估 计 并 非 所 有 Android 设 备 都 有 全 套 支 持 的 硬 件 一 定 要 检 查 所 需 的 硬 件, 如 果 不 存 在, 则 需 要 例 外 处 理 要 保 证 设 备 方 向 不 会 破 坏 应 用 程 序 或 导 致 意 外 的 行 为 可 以 锁 定 屏 幕 方 向, 如 第 2 章 所 述 请 注 意,Android 不 保 证 向 后 兼 容 性 第 2 章 讲 到, 最 好 是 声 明 最 低 的 SDK 版 本, 使 得 设 备 可 以 载 入 适 当 的 兼 容 性 设 置 如 何 在 旧 程 序 上 使 用 新 特 性 也 将 在 本 书 多 处 进 行 讨 论 健 壮 性 和 兼 容 性 支 持 一 样, 应 用 程 序 的 设 计 和 测 试 也 应 该 考 虑 到 程 序 的 健 壮 性 以 下 是 一 些 可 以 帮 助 确 保 健 壮 性 的 提 示 优 先 使 用 Android 库, 然 后 才 是 Java 库 Android 库 专 为 嵌 入 式 设 备 打 造, 并 涵 盖 了 应 用 程 序 需 要 的 多 种 需 求 在 其 他 情 况 下 可 以 使 用 Java 库 但 是, 在 两 者 都 可 用 的 情 况 下, 最 好 使 用 Android 库 注 意 内 存 分 配 要 初 始 化 变 量 尽 量 重 用 对 象, 而 不 是 重 新 分 配 这 样 可 以 加 快 应 用 程 序 执 行 速 度, 避 免 过 度 使 用 垃 圾 收 集 功 能 可 使 用 Dalvik 调 试 监 视 器 服 务 器 (DDMS) 工 具 跟 踪 内 存 分 配, 这 将 在 第 12 章 进 一 步 讨 论 利 用 LogCat 工 具 调 试 和 检 查 警 告 或 错 误, 这 也 将 在 第 12 章 讨 论 测 试 要 彻 底, 如 果 可 能 的 话 在 不 同 的 环 境 和 设 备 上 测 试 1.7 软 件 开 发 工 具 包 Android SDK 由 开 发 Android 应 用 程 序 需 要 的 平 台 工 具 示 例 代 码 以 及 开 发 文 档 所 组 成 它 作 为 Java 开 发 包 (JDK) 的 附 加 内 容 构 建, 而 且 有 一 个 可 以 集 成 到 Eclipse 集 成 开 发 环 境 中 的 插 件 安 装 与 更 新 网 上 有 很 多 文 章 详 细 介 绍 如 何 一 步 一 步 地 安 装 Android SDK 例 如, 在 谷 歌 站 点 上 可 以 找 到 所 有 安 装 过 程 的 相 关 链 接 因 此, 在 此 我 们 仅 对 最 常 见 的 安 装 步 骤 作 一 般 概 要 介 绍 以 供 参 考 这 些 步 骤 应 该 在 作 为 开 发 环 境 的 主 机 上 完 成 (1) 安 装 Java 开 发 包 ( 例 如 安 装 JDK 6.0, 它 用 于 Android 2.1 或 者 以 上 版 本 JDK 5.0 是 Android 开 发 要 求 的 最 低 Java 版 本 ) (2) 安 装 Eclipse Classic( 例 如,Eclipse 3.5.2) 在 Windows 操 作 系 统 下, 只 需 要 解 压 下 载 包 到 某 路 径 就 可 使 用 (3) 安 装 Android SDK( 例 如,r06 版 本 ) 在 Windows 操 作 系 统 下, 只 需 要 解 压 下 载 包 到 某 路 径 就 可 使 用 (4) 启 动 Eclipse 开 发 工 具, 单 击 Help, 再 选 择 Install New Software, 然 后 键 入 URL 地 址 安 装 Android DDMS 和 Android 开 发 工 具 (ADT)
21 1.7 软 件 开 发 工 具 包 11 (5) 在 Eclipse 中, 选 择 Window Preferences ( 在 Mac 系 统 上, 选 择 Eclipse Preferences), 再 选 择 Android, 然 后 点 击 Browse 按 钮 选 择 Android SDK 的 安 装 路 径 (6) 在 Eclipse 中, 依 次 选 择 Window Android SDK and AVD Manager Available Packages, 选 择 安 装 必 要 的 API( 例 如 Documentation for Android SDK,API 8;SDK Platform Android 2.2, API 8;Google APIs bygoogle Inc. 以 及 Android API 8) (7) 同 样 从 Android SDK and AVD Manager 菜 单 中, 创 建 一 个 Android 虚 拟 设 备 来 运 行 模 拟 器 或 者 安 装 USB 驱 动 程 序 在 真 机 中 运 行 应 用 (8) 在 Eclipse 开 发 工 具 中, 依 次 选 择 Run Run Configurations 来 为 每 一 个 Android 应 用 创 建 新 的 运 行 设 置 ( 与 Debug Configuration 的 设 置 类 似 ) Android JUnit 测 试 也 可 以 在 此 处 配 置 至 此, 开 发 环 境 基 本 配 置 完 成, 我 们 就 可 以 轻 松 地 开 发 一 个 Android 应 用 并 且 在 模 拟 器 或 者 真 实 Android 设 备 中 运 行 测 试 我 们 可 以 通 过 在 Eclipse 开 发 环 境 中 选 择 Help Software Updates, 再 选 择 适 当 版 本, 就 可 以 更 新 SDK 到 新 版 本 软 件 特 性 和 API 级 别 Android 操 作 系 统 会 定 期 推 出 新 功 能 和 增 强 特 性, 例 如 提 高 效 率 修 正 bug 等 操 作 系 统 更 新 的 一 个 最 主 要 推 动 力 是 新 设 备 硬 件 能 力 的 提 升 事 实 上, 很 多 操 作 系 统 版 本 都 是 伴 随 着 新 硬 件 设 备 的 推 出 而 发 布 的 ( 例 如 Éclair 随 着 设 备 Droid 推 出 而 发 布 ) 某 些 旧 有 的 Android 设 备 不 符 合 新 版 本 系 统 的 硬 件 要 求, 因 此 不 能 随 着 新 操 作 系 统 的 发 布 而 更 新 系 统 这 就 慢 慢 形 成 了 使 用 不 同 Android 系 统 版 本 的 用 户 群 所 以 开 发 者 需 要 检 查 用 户 硬 件 性 能, 或 者 至 少 提 示 用 户 设 备 所 需 要 的 最 低 硬 件 特 性 该 任 务 可 以 通 过 检 测 一 个 数 值, 即 API 级 别 来 实 现 以 下 是 从 开 发 者 的 角 度 总 结 的 不 同 操 作 系 统 版 本 的 发 布 及 主 要 特 征 代 号 Cupcake: Android OS 1.5,API level 3,2009 年 4 月 30 日 发 布 Linux 内 核 智 能 虚 拟 ( 软 ) 键 盘, 支 持 第 三 方 键 盘 AppWidget 框 架 Live 文 件 夹 Raw 格 式 的 音 频 录 制 和 播 放 交 互 式 MIDI 播 放 引 擎 视 频 录 制 API 支 持 立 体 声 蓝 牙 去 除 最 终 用 户 的 根 目 录 访 问 权 限 ( 除 非 连 接 到 电 脑 并 使 用 SDK) 通 过 RecognizerIntent( 云 服 务 ) 进 行 语 音 识 别 快 速 GPS 定 位 ( 使 用 AGPS) 代 号 Donut: Android OS 1.6,API Level 4,2009 年 9 月 15 日 发 布 Linux 内 核
22 12 第 1 章 Android 概 述 支 持 多 种 屏 幕 尺 寸 手 势 API Text-to-speech 文 本 语 音 朗 读 功 能 引 擎 通 过 SearchManager 整 合 快 速 搜 索 框 虚 拟 专 用 网 支 持 代 号 Eclair: Android OS 2.0, API Level 5,2009 年 10 月 26 日 发 布 ; Android OS 2.0.1,API Level 6,2009 年 12 月 3 日 发 布 ; Android OS 2.1,API Level 7,2010 年 1 月 12 日 发 布 同 步 适 配 器 API, 用 于 连 接 到 任 何 后 端 在 应 用 程 序 中 嵌 入 快 速 联 系 人 应 用 程 序 可 以 控 制 设 备 蓝 牙 连 接 HTML 5 支 持 Microsoft Exchange 支 持 通 过 MotionEvent 类 实 现 多 点 触 控 支 持 动 态 壁 纸 代 号 FroYo: Android OS 2.2,API Level 8,2010 年 5 月 20 日 发 布 Linux 内 核 支 持 即 时 编 译 (JIT), 使 代 码 执 行 速 度 更 快 通 过 蓝 牙 进 行 语 音 拨 号 支 持 车 载 和 桌 面 底 座 模 式 更 好 定 义 的 多 点 触 摸 事 件 云 端 到 设 备 API 应 用 可 安 装 到 设 备 的 SD 记 忆 卡 中 在 选 定 设 备 支 持 Wi-Fi 连 接 功 能 支 持 视 频 和 图 片 的 缩 略 图 显 示 支 持 多 语 言 的 键 盘 输 入 为 Market 提 供 应 用 程 序 错 误 报 告 Android 正 逐 渐 走 向 成 熟, 新 版 本 发 布 的 频 率 不 再 那 么 快 了 虽 然 无 线 远 程 更 新 操 作 系 统 是 有 可 能 的, 但 是 逻 辑 上 过 于 复 杂, 运 营 商 尽 量 避 免 这 种 方 法 硬 件 制 造 商 也 更 愿 意 有 一 个 稳 定 的 版 本, 这 样 他 们 就 不 必 对 库 存 手 机 进 行 频 繁 刷 新 了 然 而, 对 于 开 发 者 来 说, 当 有 新 版 本 发 布 时, 它 所 带 的 新 功 能 还 是 值 得 去 探 索 和 使 用 利 用 模 拟 器 或 真 机 调 试 程 序 在 用 于 开 发 的 计 算 机 上, 模 拟 器 会 启 动 一 个 看 似 Android 手 机 的 窗 口, 执 行 真 实 的 ARM 指 令 需 要 注 意 的 是, 即 使 在 高 配 置 计 算 机 上, 模 拟 器 初 始 化 的 过 程 也 会 很 慢 尽 管 有 很 多 方 法 可 配 置 模 拟 器 模 拟 真 机 的 多 个 方 面, 例 如 电 话 呼 入 有 限 的 数 据 传 输 率 改 变 屏 幕 方 向 等, 但 还 是 有 很
23 1.7 软 件 开 发 工 具 包 13 多 特 性 ( 例 如 感 应 器 和 音 频 / 视 频 ) 是 无 法 通 过 模 拟 器 来 实 现 的 对 于 没 有 设 备 的 开 发 人 员 来 说, 可 以 把 模 拟 器 视 为 一 种 验 证 设 备 基 本 功 能 的 有 效 方 法 例 如, 可 以 用 来 测 试 平 板 电 脑 的 屏 幕 尺 寸 而 不 用 去 购 买 一 个 真 的 平 板 电 脑 注 意, 我 们 必 须 创 建 一 个 目 标 虚 拟 设 备, 以 正 确 启 动 模 拟 器 Eclipse 开 发 工 具 提 供 了 一 个 很 好 的 方 法 来 管 理 Android 虚 拟 设 备 (AVD) 模 拟 器 常 用 功 能 对 应 的 快 捷 键 如 表 1-4 所 示 表 1-4 Android OS 模 拟 器 控 制 键 模 拟 器 功 能 Escape 后 退 Home 主 页 F2, PageUp 菜 单 Shift-F2, PageDown 开 始 F3 呼 叫 / 拨 号 F4 挂 断 / 结 束 呼 叫 F5 搜 索 F7 电 源 按 键 Ctrl-F3, Ctrl-KEYPAD_5 摄 像 头 Ctrl-F5, KEYPAD_PLUS 音 量 增 Ctrl-F6, KEYPAD_MINUS 音 量 减 KEYPAD_5 方 向 键 中 的 确 定 键 KEYPAD_4, KEYPAD_6 方 向 键 左, 方 向 键 右 KEYPAD_8, KEYPAD_2 方 向 键 上, 方 向 键 下 F8 启 用 / 关 闭 蜂 窝 网 络 F9 切 换 代 码 分 析 ( 仅 当 -trace 标 记 时 有 效 ) Alt-ENTER 切 换 到 全 屏 模 式 Ctrl-T 切 换 到 轨 迹 球 模 式 Ctrl-F11, KEYPAD_7 旋 转 屏 幕 方 向 到 下 一 个 布 局 或 上 一 个 布 局 Ctrl-F12, KEYPAD_9 一 般 来 说, 初 次 测 试 最 好 使 用 Android 手 机 这 样 可 以 确 保 功 能 的 完 整 性, 并 获 得 模 拟 器 不 能 完 全 模 拟 的 真 实 感 受 要 把 一 部 Android 手 机 作 为 开 发 平 台 使 用, 只 需 将 它 连 接 到 USB 接 口 并 确 保 USB 驱 动 可 以 被 检 测 ( 在 MAC 系 统 中 这 个 过 程 可 以 自 动 完 成, 在 Windows 系 统 中 驱 动 在 SDK 中,Linux 系 统 请 查 看 Google 相 应 页 面 ) 为 了 能 够 支 持 开 发 调 试,Android 设 备 需 要 更 改 一 些 设 置 从 主 页, 依 次 选 择 MENU Settings Applications Unknown sources 和 MENU Settings Applications Development USB debugging, 确 保 应 用 可 以 通 过 USB 线 安 装 到 设 备 上 更 多 的 Android 调 试 细 节 见 第 12 章 使 用 Android 调 试 桥 通 常 我 们 可 以 方 便 地 使 用 命 令 行 访 问 Android 设 备 只 要 设 备 通 过 USB 线 连 接 到 计 算 机 上 就 12
24 14 第 1 章 Android 概 述 可 以 做 到 SDK 中 自 带 了 Android 调 试 桥 (Debug Bridge), 能 用 于 访 问 Android 设 备 例 如 像 使 用 Linux 计 算 机 一 样 登 录 到 Android 设 备, 键 入 如 下 命 令 : 这 时, 许 多 UNIX 命 令 都 可 用 了 使 用 exit 可 以 退 出 shell 只 要 加 上 一 个 命 令 就 可 以 执 行, 而 不 需 要 先 进 入 或 者 退 出 shell: 要 从 设 备 中 复 制 文 件, 可 使 用 pull 命 令, 如 果 需 要 可 以 重 命 名 : 要 复 制 一 份 文 件 到 设 备 中, 可 使 用 push: 要 删 除 应 用, 例 如 从 设 备 中 删 除 com.dummy.game, 可 键 入 如 下 命 令 : 以 上 命 令 是 最 常 用 的, 另 外 还 有 很 多 其 他 可 用 的 命 令, 我 们 将 在 第 12 章 介 绍 这 些 命 令 的 用 法 签 名 和 发 布 应 用 要 在 Android Market 上 发 布 应 用, 必 须 对 它 进 行 签 名 完 成 签 名 需 要 生 成 一 个 密 钥 并 把 它 放 在 一 个 安 全 的 地 方, 然 后 在 发 布 模 式 下 将 应 用 程 序 打 包, 并 用 生 成 的 密 钥 对 其 进 行 签 名 当 应 用 更 新 时, 必 须 使 用 相 同 的 密 钥 对 其 签 名 以 确 保 升 级 过 程 对 用 户 是 透 明 的 Eclipse 开 发 环 境 可 以 自 动 为 我 们 完 成 以 上 工 作 只 需 在 要 签 名 的 工 程 上 单 击 右 键 选 择 Export Export Android Application, 即 可 开 始 打 包 工 作 可 以 利 用 密 码 生 成 密 钥, 密 钥 需 要 保 存 起 来 以 便 将 来 的 应 用 和 应 用 更 新 使 用, 然 后 通 过 菜 单 继 续 完 成 APK 文 件 的 创 建 它 是 一 个 发 布 模 式 的 Android 工 程 并 用 密 钥 签 名 的 封 包 现 在 我 们 就 可 以 将 应 用 程 序 上 传 到 Android Market 上 了 1.8 Android Market 完 成 设 计 开 发 测 试 和 签 名 工 作 后, 你 就 可 以 在 Android Market 发 布 应 用 程 序 然 而 若 想 使 用 谷 歌 的 Android Market, 你 还 需 要 申 请 一 个 Google Checkout 账 号 该 账 号 不 仅 用 来 支 付 25 美 元 的 注 册 费, 也 供 开 发 人 员 收 取 付 费 应 用 的 报 酬 开 发 者 的 作 品 能 够 公 之 于 众, 在 上 传 后 的 短 短 数 小 时 内, 让 全 世 界 的 人 们 浏 览 下 载 评 分 和 评 价, 是 多 么 激 动 人 心 的 事 啊! 下 面 列 出 几 条 应 用 程 序 发 布 建 议 供 你 参 考 最 终 用 户 许 可 协 议 在 全 球 大 部 分 地 区, 任 何 形 式 的 原 创 内 容 的 发 布 均 受 伯 尔 尼 公 约 1 的 自 动 版 权 保 护 但 通 常 还 是 会 为 内 容 添 加 附 有 出 版 时 间 的 版 权 声 明, 如 2010 我 们 会 在 第 4 章 中 讨 论 如 何 为 Android 1 伯 尔 尼 公 约 (Berne Convention), 有 关 保 护 文 字 和 艺 术 作 品 版 权 的 国 际 公 约 译 者 注
25 1.8 Android Market 15 应 用 程 序 添 加 版 权 声 明 最 终 用 户 许 可 协 议 (EULA) 是 开 发 者 ( 或 开 发 商 ) 与 顾 客 ( 或 最 终 用 户 ) 签 署 的 发 布 程 序 的 软 件 合 同, 我 们 可 以 利 用 EULA 进 一 步 维 护 开 发 者 ( 或 开 发 商 ) 的 权 益 通 常 EULA 声 明 包 括 诸 如 授 权 许 可 证 版 权 和 免 责 条 款 等 具 体 权 责 内 容 所 以 应 用 程 序 特 别 是 付 费 应 用 最 好 还 是 附 上 EULA 我 们 将 会 在 第 9 章 讨 论 如 何 为 Android 应 用 添 加 EULA 提 升 应 用 程 序 的 曝 光 率 用 户 通 常 使 用 以 下 三 种 方 式 查 找 应 用 程 序, 充 分 利 用 这 些 渠 道 有 助 于 打 响 应 用 程 序 知 名 度 第 一 种 方 式, 通 过 选 择 列 出 最 新 应 用 ( just in apps) 查 看 应 用 程 序 首 先 要 为 你 的 应 用 程 序 选 择 恰 当 的 描 述 性 名 称 和 所 属 类 别, 如 游 戏 通 信 软 件 等 为 吸 引 人 们 的 注 意, 用 语 一 定 要 简 洁 明 了 游 戏 大 类 下 又 分 很 多 子 类 如 果 你 的 应 用 程 序 非 常 好 玩, 但 又 没 有 明 确 的 用 途 或 者 等 级 评 分, 不 妨 将 其 归 入 休 闲 游 戏 系 列 即 便 如 此,Android Market 每 月 都 会 有 多 款 应 用 程 序 上 架, 上 传 的 应 用 往 往 一 两 天 后 就 被 挤 下 了 最 新 应 用 名 单 第 二 种 方 式, 通 过 关 键 字 检 索 查 找 应 用 程 序 我 们 可 以 推 测 用 户 可 能 使 用 哪 些 主 要 的 关 键 字, 然 后 将 其 加 到 程 序 的 标 题 或 描 述 中 世 界 各 地 用 户 语 言 不 同, 所 以 应 包 含 适 当 的 国 际 关 键 字 第 三 种 方 式, 通 过 选 择 热 门 程 序 排 行 (Top apps) 发 现 应 用 程 序 这 个 排 序 由 评 分 和 下 载 次 数 决 定 若 想 在 此 类 目 跻 身 前 列, 开 发 人 员 就 要 耗 费 时 间 和 精 力 不 断 更 新 和 完 善 应 用 这 就 引 出 了 提 高 程 序 知 名 度 的 最 后 一 点, 即 健 壮 性 原 则 要 确 保 你 的 程 序 不 会 含 有 致 命 性 bug, 耗 电 量 小 卸 载 方 式 直 观 明 了, 否 则, 如 果 有 太 过 耗 电 无 法 卸 载 等 类 似 评 语 就 很 容 易 吓 跑 潜 在 客 户 值 得 注 意 的 是, 开 发 者 与 用 户 之 间 的 交 互 几 乎 全 部 发 生 在 Android Market, 人 们 通 常 不 会 通 过 发 布 者 的 联 系 方 式 和 支 持 网 站 去 找 详 细 资 料, 因 此 这 部 分 信 息 略 显 多 余 脱 颖 而 出 有 时 开 发 者 创 建 某 个 应 用 程 序 之 后, 突 然 发 现 Android Market 已 经 发 布 了 类 似 软 件 我 们 应 该 把 它 看 作 是 一 个 机 遇 而 非 挫 折 优 良 的 设 计 界 面 和 运 行 状 况 能 快 速 赚 取 用 户 口 碑, 从 而 令 我 们 的 应 用 程 序 脱 颖 而 出 通 常 来 说, 原 创 是 最 好 的, 但 我 们 也 没 必 要 排 斥 学 习 和 模 仿, 只 要 注 意 不 侵 犯 版 权 即 可 为 应 用 程 序 收 费 应 用 程 序 在 Android Market 正 式 上 架 或 者 上 传 更 新 的 时 候, 开 发 者 需 要 决 定 是 否 对 其 收 费, 主 要 有 以 下 5 种 方 式 完 全 免 费 所 有 具 有 访 问 权 限 的 人 都 可 以 在 Android Market 中 查 看 和 安 装 此 应 用 载 有 广 告 的 免 费 应 用 有 时 开 发 者 需 要 为 应 用 程 序 拉 赞 助, 更 多 的 时 候 是 和 第 三 方 集 成 商 合 作 广 告 商 通 过 广 告 点 击 率 付 钱, 而 较 少 凭 广 告 印 象 付 费 图 1-1 即 为 一 条 AdMob 的 横 幅 广 告 该 类 广 告 要 求 应 用 程 序 需 具 有 访 问 Internet 和 设 备 所 处 地 点 的 权 限 建 议 使 用 低 精 度 定 位 而 不 是 精 确 定 位, 以 免 吓 跑 一 些 潜 在 客 户, 拒 绝 安 装 你 的 应 用
26 16 第 1 章 Android 概 述 完 全 付 费 Google 帮 助 管 理 资 费, 并 抽 取 三 成 收 益 没 有 开 通 Google Checkout 服 务 的 国 家 或 地 区 的 用 户 无 法 查 看 和 安 装 此 类 应 用 因 此, 部 分 开 发 者 随 即 转 向 第 三 方 应 用 商 店 发 售 此 类 应 用 程 序 同 时 发 布 免 费 限 制 版 和 付 费 完 整 版 两 种 应 用 这 样 就 可 以 试 用 该 款 应 用 程 序, 如 果 喜 欢, 用 户 购 买 完 整 版 时 就 不 会 太 犹 豫 某 些 应 用 ( 如 10 级 闯 关 游 戏 ) 非 常 适 合 采 用 此 种 模 式 推 广, 但 并 不 是 所 有 程 序 均 适 用 售 卖 虚 拟 商 品 这 是 Facebook 的 应 用 采 用 的 重 要 模 式, 备 受 移 动 社 区 关 注 图 1-1 AdMob 的 横 幅 广 告 案 例 免 费 应 用 程 序 往 往 会 有 很 多 人 浏 览 再 晦 涩 和 古 怪 的 新 应 用 上 市 的 时 候, 头 一 个 月 也 至 少 会 有 1000 人 浏 览 和 下 载 试 用 有 些 开 发 者 明 确 声 明 本 程 序 毫 无 用 处, 结 果 应 用 的 下 载 量 也 能 达 到 以 上 并 获 得 四 星 级 评 价 有 点 儿 用 的 一 些 免 费 应 用 下 载 量 可 以 达 到 , 功 能 非 常 实 用 的 应 用 程 序 下 载 量 甚 至 可 能 超 过 对 于 大 多 数 开 发 者 来 说, 如 此 大 的 曝 光 率 着 实 令 人 印 象 深 刻 目 前 移 动 广 告 仍 然 处 于 起 步 阶 段, 吸 引 力 不 足, 所 以 广 告 点 击 率 并 不 理 想 现 在 Market 中 运 营 最 好 的 还 是 付 费 应 用, 只 要 程 序 功 能 实 用, 描 述 清 晰, 有 不 少 正 面 评 论, 人 们 就 会 购 买 它 如 果 应 用 程 序 非 常 成 功, 那 么 价 格 贵 点 也 无 可 厚 非 管 理 评 论 和 更 新 很 多 应 用 程 序 都 是 开 发 者 发 布 程 序 之 后, 再 根 据 用 户 的 反 馈 意 见 不 断 升 级 完 善 应 用, 从 而 大 获 成 功 的 用 户 喜 欢 看 到 开 发 者 回 应 评 论, 这 会 引 导 越 来 越 多 的 人 下 载 该 应 用, 随 着 下 载 量 的 攀 升, 应 用 程 序 也 更 加 受 认 可 一 般 来 说, 每 200 个 用 户 中 会 有 1 人 评 分, 发 表 评 论 的 人 就 更 少 了 如 果 用 户 肯 花 时 间 评 价 你 的 程 序, 这 些 意 见 多 半 值 得 一 听, 尤 其 是 一 些 建 设 性 评 论, 比 如 在 HTC Hero 型 号 手 机 上 不 能
27 1.8 Android Market 17 正 常 运 行 或 者 非 常 不 错 的 程 序, 若 是 怎 么 怎 么 做 就 更 好 了 之 类 开 发 者 能 够 根 据 已 有 用 户 的 反 馈 意 见 积 极 升 级 应 用 程 序, 会 让 大 家 看 在 眼 里, 从 而 吸 引 更 多 用 户 任 何 情 况 下, 开 发 者 都 要 明 确 强 调 软 件 的 升 级 原 因 要 知 道 很 多 用 户 一 天 能 收 到 十 几 条 应 用 程 序 的 更 新 通 知, 如 果 没 有 一 个 很 好 的 升 级 理 由, 他 们 很 可 能 就 不 更 新 了 Android Market 的 候 补 之 选 除 Android Market 之 外 还 有 一 些 独 立 的 Android 应 用 程 序 商 店 虽 然 这 些 应 用 程 序 商 店 不 像 Google Market 那 样 访 问 便 捷, 但 有 诸 如 曝 光 率 高 收 费 条 目 多 不 收 取 提 成 费 用 等 优 点 同 时 还 有 些 Android 设 备 制 造 商 为 其 终 端 开 发 了 定 制 的 应 用 程 序 商 店 例 如, 我 们 可 以 通 过 摩 托 罗 拉 应 用 商 店 使 中 国 和 拉 丁 美 洲 的 摩 托 罗 拉 Android 手 机 能 看 到 我 们 的 应 用, 该 应 用 商 店 的 网 站 为
28 18 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 第 2 章 应 用 程 序 基 础 知 识 : activity 和 intent 每 个 Android 应 用 程 序 在 开 发 时 都 是 一 个 独 立 的 Android 工 程 本 章 介 绍 了 Android 工 程 目 录 结 构, 并 简 要 概 述 程 序 的 基 本 组 成 模 块, 这 些 内 容 为 理 解 本 书 的 秘 诀 提 供 了 非 常 有 用 的 背 景 知 识 本 章 的 后 半 部 分 将 着 重 讲 解 activitiy 以 及 触 发 这 些 activity 的 intent 2.1 Android 应 用 程 序 预 览 Android 应 用 程 序 可 以 包 含 五 花 八 门 的 功 能, 比 如 编 辑 文 本 播 放 音 乐 设 定 闹 钟 还 有 开 启 通 讯 录 等 这 些 功 能 可 以 划 分 为 以 下 四 类 Android 组 件 ( 见 表 2-1), 每 个 组 件 都 归 属 于 一 个 Java 基 础 类 表 2-1 Android 应 用 程 序 所 包 含 的 四 种 组 件 功 能 Java 基 础 类 范 例 关 注 用 户 操 作 Activity 编 辑 文 本, 玩 游 戏 后 台 进 程 Service 播 放 音 乐, 更 新 天 气 图 标 接 收 消 息 BroadcastReceiver 根 据 特 定 事 件 触 发 警 报 存 取 数 据 ContentProvider 开 启 手 机 通 讯 录 每 个 Android 应 用 都 由 一 个 或 多 个 组 件 组 成 当 要 用 到 某 个 组 件 的 时 候,Android 操 作 系 统 就 会 将 它 们 实 例 化 在 拥 有 特 定 权 限 的 情 况 下, 其 他 应 用 程 序 同 样 也 可 以 使 用 它 们 Android 操 作 系 统 集 成 了 很 多 功 能 ( 某 些 功 能 甚 至 并 非 和 某 个 应 用 程 序 直 接 相 关, 如 呼 入 电 话 ), 每 个 组 件 都 具 有 以 下 生 命 周 期, 包 括 创 建 (create) 获 得 焦 点 (focus) 失 去 焦 点 (defocus) 和 销 毁 (destroy) 我 们 可 以 通 过 改 写 程 序 默 认 的 行 为, 使 交 互 对 用 户 更 加 友 好, 比 如 保 存 变 量 或 者 恢 复 用 户 界 面 元 素 除 了 ContentProvider 组 件, 每 个 组 件 都 需 要 一 个 叫 做 Intent 的 异 步 消 息 来 激 活 Intent 可 包 含 一 组 (Bundle) 描 述 该 组 件 的 辅 助 数 据 这 也 提 供 了 一 种 在 组 件 之 间 传 递 消 息 的 方 法 本 章 最 后 将 会 使 用 最 常 见 的 组 件 Activity 来 演 示 前 面 提 到 的 概 念 由 于 activity 总 是 和 具 体
29 2.1 Android 应 用 程 序 预 览 19 的 用 户 交 互 相 关, 所 以 每 个 activity 在 创 建 的 时 候 会 自 动 创 建 一 个 新 窗 口 当 然 还 会 提 到 一 些 关 于 UI 的 概 要 介 绍 至 于 Service 和 BroadcastReceiver 这 两 个 组 件 我 们 将 会 在 第 3 章 讲 解, 而 ContentProvider 则 会 在 第 9 章 阐 述 秘 诀 1: 创 建 工 程 并 新 建 activity 创 建 Android 工 程 或 者 组 件 最 简 单 的 方 法 莫 过 于 使 用 Eclipse 提 供 的 集 成 开 发 环 境 (IDE), 该 方 法 能 够 确 保 正 确 安 装 辅 助 文 件 创 建 Android 工 程 的 具 体 过 程 如 下 所 示 (1) 在 Eclipse 中, 选 择 File New Android Project 然 后 就 会 显 示 Android 工 程 的 创 建 画 面 (2) 填 写 工 程 名 称 (Project name), 此 处 输 入 SimpleActivityExample (3) 在 Build Target 选 项 框 中 选 择 编 译 目 标, 这 些 选 项 与 开 发 电 脑 的 SDK 版 本 有 关 (4) 填 写 程 序 名 称 (Application name), 此 处 为 Example of Basic Activity (5) 填 写 应 用 程 序 包 名 称 (Package name), 此 处 为 com.cookbook.simple_activity (6) 根 据 同 样 的 步 骤 创 建 主 activity, 注 意 一 定 要 勾 选 Create Activity, 并 填 写 activity 名 称, 此 处 为 SimpleActivity 所 有 的 activity 都 继 承 于 抽 象 类 Activity 或 者 其 子 类, 并 通 过 oncreate() 方 法 创 建 activity 通 常 在 初 始 化 的 时 候 都 会 重 载 该 方 法, 比 如 设 置 UI 创 建 监 听 按 钮 初 始 化 参 数 或 者 开 启 线 程 等 如 果 在 创 建 工 程 时 没 有 创 建 主 activity, 或 者 需 要 添 加 其 他 activity, 可 以 通 过 以 下 步 骤 来 创 建 activity (1) 首 先 创 建 一 个 新 类 扩 展 Activity 类 ( 在 Eclipse 中, 右 键 单 击 project, 选 择 New Class, 然 后 指 定 android.app.activity 作 为 父 类 ) (2) 重 载 oncreate() 功 能 ( 在 Eclipse 中, 右 键 单 击 class 文 件, 选 择 Source Override/ Implement Methods..., 然 后 勾 选 oncreate() 方 法 ) (3) 作 为 最 常 被 重 载 的 方 法 之 一,activity 也 必 须 激 活 父 类 方 法, 否 则 运 行 时 可 能 会 抛 出 异 常 如 清 单 2-1 所 示 首 先 调 用 super.oncreate() 方 法, 确 保 正 确 初 始 化 activity 清 单 2-1 src/com/cookbook/simple_activity/simpleactivity.java (4) 如 果 使 用 UI, 则 要 在 res/layout/ 目 录 下 的 一 个 XML 文 件 中 指 定 页 面 布 局 此 处 为 main.xml, 12
30 20 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 如 清 单 2-2 所 示 清 单 2-2 res/layout/main.xml (5) 通 过 setcontentview() 方 法 设 置 activity 的 布 局, 并 将 XML 布 局 文 件 作 为 resource ID 传 递 给 它 此 处 为 R.layout.main, 见 清 单 2-1 (6) 在 AndroidManifest XML 文 件 中 声 明 activity 的 属 性, 详 细 内 容 见 清 单 2-5 注 意 字 符 串 类 型 的 资 源 要 在 res/values/ 文 件 夹 下 的 strings.xml 文 件 中 定 义, 如 清 单 2-3 所 示 所 有 字 符 串 都 集 中 于 此 处 定 义, 可 以 方 便 修 改 或 重 用 清 单 2-3 res/values/strings.xml 现 在 我 们 进 一 步 探 讨 该 工 程 的 目 录 结 构 和 自 动 生 成 内 容 工 程 目 录 结 构 及 自 动 生 成 内 容 图 2-1 为 Eclipse Package Explorer 显 示 的 一 个 工 程 结 构 示 例 除 Android 2.0 库 文 件 以 外, 该 工 程 的 目 录 结 构 中 的 文 件 既 有 用 户 创 建 的 也 有 系 统 自 动 生 成 的 用 户 创 建 的 文 件 如 下 所 示 src/ 是 开 发 者 自 己 编 写 的 或 者 导 入 的 Java 包 每 个 包 可 以 包 含 多 个 不 同 的.java 类 文 件 res/layout/ 用 来 存 放 说 明 每 个 界 面 布 局 的 XML 文 件 res/values/ 用 来 存 放 被 其 他 文 件 所 引 用 的 XML 格 式 的 资 源 文 件 res/drawable-hdpi/ res/drawable-mdpi/ 和 res/drawable-ldpi/ 是 程 序 所 使 用 图 片 的 资 源 目 录, 分 别 存 放 高 中 低 不 图 2-1 Eclipse IDE 显 示 的 一 个 Android 工 程 的 目 录 结 构
31 2.1 Android 应 用 程 序 预 览 21 同 dpi 分 辨 率 的 图 片 assets/ 存 放 程 序 使 用 的 nonmedia 文 件 AndroidManifest.xml 向 Android 操 作 系 统 说 明 该 工 程 自 动 生 成 的 文 件 如 下 所 示 gen/ 存 放 系 统 自 动 生 成 代 码, 包 括 生 成 的 R.java 类 default.properties 存 放 工 程 环 境 信 息 尽 管 该 文 件 由 系 统 自 动 生 成 的, 但 开 发 人 员 也 可 以 根 据 需 要 修 改 应 用 程 序 的 资 源 包 括 描 述 布 局 的 XML 文 件, 描 述 字 符 串 值 UI 元 素 标 签 的 XML 文 件, 以 及 其 他 如 图 片 声 音 等 辅 助 文 件 编 译 时, 对 资 源 的 引 用 都 会 添 加 到 自 动 生 成 的 包 装 类 R.java 中 该 文 件 由 AndroidAsset 打 包 工 具 (aapt) 自 动 生 成 清 单 2-4 为 秘 诀 1 使 用 的 该 文 件 清 单 2-4 gen/com/cookbook/simple_activity/r.java 此 处 的 每 个 资 源 都 被 映 射 成 一 个 唯 一 的 整 型 值 通 过 这 种 方 式,R.java 类 提 供 了 一 种 在 Java 代 码 中 引 用 外 部 资 源 的 方 法 例 如 想 要 在 Java 文 件 中 引 用 main.xml 布 局 文 件, 就 需 要 使 用 整 型 值 R.layout.main 如 果 是 在 XML 文 件 中 引 用 main.xml 文 件, 就 需 要 使 用 "@layout/main" 字 符 串 在 Java 或 者 XML 文 件 中 引 用 资 源 请 参 见 表 2-2 请 注 意, 假 若 要 定 义 一 个 ID 为 home_button 的 按 钮, 需 要 在 引 用 字 符 串 前 添 加 + 号, 即 :@+id/home_button 第 4 章 再 详 细 地 探 讨 资 源 引 用, 此 处 内 容 对 本 章 秘 诀 的 学 习 已 经 足 够
32 22 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 表 2-2 在 Java 和 XML 文 件 中 引 用 不 同 的 资 源 资 源 在 Java 中 引 用 在 XML 中 引 用 res/layout/main.xml <string name="hello"> Android 包 和 Manifest 清 单 文 件 Android 工 程, 有 时 也 称 为 Android 包, 是 Java 包 的 集 合 不 同 的 Android 包 可 以 包 含 相 同 名 称 的 Java 包, 但 在 安 装 到 Android 设 备 上 时, 各 个 Android 包 的 名 字 必 须 是 唯 一 的 为 了 操 作 系 统 能 够 正 确 访 问 这 些 Android 包, 每 个 应 用 程 序 必 须 在 名 为 AndroidManifest 的 XML 文 件 中 注 册 声 明 它 所 使 用 的 组 件 此 外 该 XML 文 件 还 包 含 运 行 该 应 用 程 序 所 需 的 权 限 及 操 作 清 单 2-5 为 秘 诀 1 所 用 文 件 清 单 2-5 AndroidManifest.xml Android 包 所 有 XML 文 件 第 一 行 都 必 须 指 定 编 码, 该 行 代 码 为 标 准 代 码 manifest 元 素 定 义 Android 包 的 名 称 和 版 本 号 versioncode 可 以 根 据 你 的 程 序 情 况 定 义, 为 确 定 版 本 高 低 关 系 的 一 个 整 数 versionname 采 用 人 可 读 懂 的 格 式 表 示, 可 以 声 明 主 次 修 订 版 本 号 application 元 素 定 义 用 户 从 Android 设 备 菜 单 可 以 看 到 的 应 用 程 序 图 标 和 名 称 名 称 是 一 个 字 符 串, 为 了 确 保 在 用 户 设 备 中 将 其 显 示 在 应 用 图 标 下 方, 应 该 尽 量 使 其 简 短 一 般 来 说, 名 称 最 多 两 个 单 词, 每 个 单 词 最 好 在 十 个 字 符 之 内, 中 间 不 能 含 有 空 格 activity 元 素 定 义 程 序 启 动 时 触 发 的 主 activity, 以 及 该 activity 激 活 后 标 题 栏 中 显 示 的 名 称 在 这 儿 需 要 指 定 Java 包 名, 本 例 为 com.cookbook.simple_activity, 相 应 activity 名 称 为 Simple-
33 2.2 Activity 的 生 命 周 期 23 Activity 由 于 Java 包 名 称 一 般 和 Android 包 名 称 一 致, 所 以 常 常 会 使 用 缩 写 SimpleActivity 不 过 最 好 记 住 Android 包 和 Java 包 还 是 有 区 别 的 intent-filter 元 素 向 系 统 说 明 该 组 件 功 能 鉴 于 此 作 用, 它 可 以 包 含 多 个 action,category 或 者 data 元 素 该 点 在 不 同 的 秘 诀 中 都 有 所 体 现 uses-sdk 元 素 定 义 运 行 此 程 序 所 需 的 API 级 别 一 般 来 说,API 级 别 定 义 如 下 : 1 2 由 于 Android 系 统 向 前 兼 容,maxSdkVersion 所 定 义 的 最 高 API 支 持 版 本 会 令 人 极 度 沮 丧, 因 为 它 不 支 持 Android 及 之 后 的 版 本 targetsdkversion 可 要 可 不 要, 该 项 用 于 允 许 同 一 SDK 版 本 的 设 备 禁 用 加 快 操 作 速 度 的 升 级 兼 容 性 设 置 但 minsdkversion 必 须 定 义, 以 确 保 应 用 程 序 在 不 支 持 该 应 用 所 需 的 功 能 的 平 台 上 运 行 时 不 会 崩 溃, 定 义 时 尽 可 能 选 择 较 低 的 API 级 别 AndroidManifest 存 放 运 行 该 应 用 程 序 所 需 的 权 限 我 们 会 在 随 后 的 章 节 中 进 一 步 详 细 阐 述, 但 以 上 部 分 基 本 可 以 涵 盖 本 章 秘 诀 重 命 名 应 用 程 序 中 的 部 分 文 件 有 时 候 我 们 需 要 重 命 名 Android 工 程 的 部 分 文 件, 或 许 是 从 本 书 中 手 动 复 制 一 个 文 件 放 在 工 程 中, 或 许 是 在 开 发 过 程 修 改 了 程 序 名 称, 需 要 在 文 件 系 统 的 目 录 树 反 映 出 来 Android 提 供 了 工 具 帮 我 们 自 动 完 成 此 项 工 作, 并 且 可 以 同 步 更 新 交 叉 引 用 例 如 在 Eclipse IDE 中, 使 用 下 列 不 同 的 方 式 来 重 命 名 应 用 程 序 的 部 分 文 件 重 命 名 Android 工 程, 步 骤 如 下 : (1) 右 键 单 击 该 工 程 选 择 Refactor Move 移 到 文 件 系 统 中 的 一 个 新 目 录 ; (2) 右 键 单 击 该 工 程 选 择 Refactor Rename 重 命 名 工 程 重 命 名 Android 包, 步 骤 如 下 : (1) 右 键 单 击 该 包 选 择 Refactor Rename 重 命 名 该 包 ; (2) 更 新 AndroidManifest.xml 包 名 称 重 命 名 Android 类 ( 如 Activity Service BroadcastReceiver ContentProvider 等 主 要 组 件 ), 步 骤 如 下 : (1) 右 键 单 击 该 Java 文 件 选 择 Refactor Rename 重 命 名 该 类 文 件 ; (2) 更 新 AndroidManifest.xml 确 保 android:name 使 用 新 组 件 名 注 意 重 命 名 XML 文 件 等 其 他 类 型 文 件 的 时 候, 通 常 都 要 手 动 修 改 Java 代 码 中 的 相 应 的 引 用 2.2 Activity 的 生 命 周 期 程 序 中 的 每 个 activity 都 有 自 己 的 生 命 周 期 通 过 调 用 oncreate() 方 法,activity 能 且 仅 能 被 创 建 一 次 当 ondestroy() 方 法 执 行 时, 该 activity 随 即 关 闭 正 如 图 2-2 所 阐 述 的 那 样, 不 同 事 件 可 以 导 致 activity 不 同 的 运 行 状 态 秘 诀 2 将 为 我 们 一 一 呈 现 这 些 功 能
34 24 第2章 应用程序基础知识 Activity 和 Intent activity 开始 oncreate() 用户操作返回到 创建状态 进程被结束 onstart() onrestart() onresume() activity 运行中 此activity 重新回到前台 另外一个activity到来 另外一个activity需要 使用内存 此activity 重新回到前台 onpause() 当前activity处于不显 示状态 onstop() ondestroy() activity 关闭 图2-2 activity的生命周期 来源 秘诀 2 使用其他的生命周期方法 下面的秘诀提供了一种查看活动中activity生命周期的简单方法 为便于演示 每个被重载的 方法都有明确说明 我们通过加入Toast命令 使得该方法在启动的时候 在屏幕上显示 关 于Toast微件的更多内容请参见第3章 在Android设备上运行以下代码 如清单2-6所示 并尝 试各种情况 特别是注意以下几种操作 颠倒屏幕方向 将结束并重新运行activity 按下Home按钮将暂停activity 但并不结束 按下程序图标可能会开启新的activity实例 即使先前的activity没有关闭 屏幕处于休眠态时会暂停activity 屏幕重新唤醒时会继续该activity 类似于呼入电话
35 2.2 Activity 的 生 命 周 期 25 清 单 2-6 src/com/cookbook/activity_lifecycle/activitylifecycle.java
36 26 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 我 们 可 以 看 到, 用 户 的 很 多 常 见 操 作 都 可 能 会 导 致 activity 暂 停 运 行 结 束 甚 至 启 动 数 个 应 用 程 序 版 本 在 继 续 下 一 部 分 内 容 之 前, 有 必 要 给 大 家 介 绍 两 种 方 法 来 控 制 这 种 操 作 行 为 秘 诀 3: 强 制 执 行 单 任 务 模 式 如 果 应 用 程 序 跳 转 走 后 再 次 启 动 的 话, 可 能 会 在 设 备 上 产 生 多 个 activity 实 例 最 终 为 释 放 内 存, 多 余 的 activity 实 例 会 被 系 统 杀 死, 但 与 此 同 时, 也 很 可 能 会 导 致 异 常 为 避 免 上 述 情 况 发 生, 程 序 员 可 以 在 AndroidManifest 中 控 制 每 个 activity 的 这 种 行 为 为 确 保 设 备 上 只 有 一 个 activity 实 例 在 运 行, 需 要 在 activity 元 素 中 包 含 MAIN 和 LAUNCHER 两 个 intent 过 滤 器, 如 下 : 该 行 代 码 确 保 在 任 务 中 的 任 何 时 刻, 每 个 activity 都 只 有 唯 一 一 个 运 行 实 例 此 外, 该 实 例 的 所 有 子 activity 都 作 为 自 身 任 务 启 动 为 进 一 步 限 制 应 用 程 序 中 的 所 有 activity 都 只 能 运 行 一 个 实 例, 不 妨 使 用 以 下 代 码 : 这 样 使 得 所 有 activity 作 为 同 一 个 任 务, 共 享 信 息 非 常 方 便 此 外, 有 时 我 们 希 望 无 论 用 户 通 过 什 么 方 式 进 入 activity 都 能 够 保 存 任 务 的 状 态 例 如, 如 果 用 户 离 开 了 应 用 程 序, 不 久 后 又 重 新 启 动 了 该 应 用 程 序, 默 认 情 况 下 系 统 会 重 设 任 务 到 初 始 化 状 态 为 确 保 用 户 总 是 能 返 回 到 关 闭 之 前 的 状 态, 需 要 在 任 务 的 根 activity 的 activity 元 素 的 属 性 中 作 如 下 定 义 : 秘 诀 4: 强 制 屏 幕 方 向 每 个 带 有 加 速 度 计 的 Android 设 备 都 可 以 判 定 方 向 当 设 备 由 纵 向 模 式 切 换 到 横 向 模 式 时, 默 认 动 作 是 相 应 地 旋 转 应 用 程 序 视 图 然 而 秘 诀 2, 倒 置 屏 幕 会 导 致 已 经 结 束 的 activity 重 新 启 动 如 果 是 这 种 情 况, 那 么 就 会 丢 掉 当 前 的 程 序 状 态, 从 而 破 坏 用 户 体 验 解 决 屏 幕 倒 置 问 题 的 一 种 方 案 是 在 发 生 改 变 之 前 保 存 用 户 的 状 态, 改 变 方 向 后 重 新 启 动 activity 时 读 取 用 户 先 前 状 态 还 有 一 种 更 简 单 的 办 法, 就 是 强 制 设 定 屏 幕 的 方 向, 禁 止 旋 转 切 换 视 图 AndroidManifest 中 列 出 的 每 个 activity 都 可 以 定 义 屏 幕 方 向 比 如 为 了 指 定 某 个 activity 始 终 以 纵 向 模 式 运 行, 在 activity 元 素 中 可 以 添 加 如 下 代 码 : 同 样, 如 果 想 设 定 为 横 向 模 式, 可 以 使 用 如 下 代 码 : 然 而, 在 硬 键 盘 滑 出 时, 先 前 的 情 况 还 是 会 导 致 activity 的 关 闭 和 重 新 启 动 所 以 我 们 可 以 采
37 2.2 Activity 的 生 命 周 期 27 用 第 三 种 办 法, 即 告 知 Android 系 统 处 理 应 用 程 序 方 向 和 键 盘 滑 出 事 件 可 以 在 activity 元 素 的 属 性 中 添 加 如 下 代 码 : 1 该 方 法 可 以 单 独 使 用, 也 可 以 和 screenorientation 属 性 结 合 在 一 起 使 用, 视 应 用 程 序 要 求 而 定 秘 诀 5: 保 存 和 恢 复 activity 信 息 每 当 一 个 activity 即 将 被 杀 死 时, 都 会 调 用 onsaveinstancestate() 方 法 重 载 该 方 法 可 以 保 存 相 关 状 态 信 息 当 重 新 创 建 该 activity 时, 则 会 调 用 onrestoreinstancestate() 方 法 重 载 该 方 法 可 以 获 取 先 前 保 存 的 状 态 信 息 这 样 当 应 用 程 序 经 历 生 命 周 期 变 化 时, 就 可 以 为 用 户 带 来 无 缝 体 验 值 得 注 意 的 是, 大 部 分 UI 控 件 状 态 都 不 需 要 我 们 亲 自 处 理, 系 统 会 自 动 帮 我 们 完 成 此 项 工 作 onpause() 方 法 略 有 不 同 如 果 另 一 个 组 件 在 activity 中 启 动, 就 会 调 用 onpause() 方 法 暂 停 此 activity 活 动 稍 后 系 统 如 要 回 收 内 存 等 资 源 时, 该 activity 仍 然 处 于 暂 停 状 态,Android 系 统 就 会 调 用 onsaveinstancestate() 方 法 保 存 状 态 信 息, 然 后 将 其 杀 死 清 单 2-7 为 存 取 包 含 一 个 string 数 组 和 一 个 float 数 组 的 实 例 状 态 信 息 的 示 例 清 单 2-7 SaveInstanceState() 和 onrestoreinstancestate() 示 例 请 注 意,onCreate() 方 法 也 包 含 Bundle savedinstancestate 当 activity 关 闭 之 后 重 新 初 始 化, 之 前 onsaveinstancestate() 方 法 中 保 存 的 bundle 状 态 信 息 会 传 递 给 oncreate() 方 法 总 之, 所 有 保 存 的 状 态 信 息 都 会 传 递 给 onrestoreinstancestate() 方 法, 所 以 自 然 会 利 用 它 来 恢 复 之 前 状 态 11 12
38 28 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 2.3 多 个 activity 即 使 最 简 单 的 应 用 程 序 也 会 拥 有 多 个 功 能, 所 以 经 常 需 要 使 用 多 个 activity 比 如, 一 个 游 戏 可 能 包 含 两 个 activity, 一 个 用 来 显 示 高 分 排 行 榜, 另 一 个 则 用 来 显 示 游 戏 画 面 一 个 记 事 本 程 序 可 能 包 含 三 个 activity: 查 看 笔 记 列 表 阅 读 某 条 笔 记 编 辑 某 条 笔 记 或 加 新 笔 记 当 程 序 启 动 时, 就 会 执 行 AndroidManifest XML 文 件 中 定 义 的 主 activity 通 过 事 件 触 发, 可 以 跳 转 到 另 外 一 个 activity 当 第 二 个 activity 被 激 活 时, 先 前 的 主 activity 就 处 于 暂 停 状 态 当 第 二 个 activity 运 行 结 束 后, 主 activity 就 会 再 次 回 到 前 台 恢 复 运 行 若 想 激 活 程 序 中 的 某 个 组 件, 可 以 使 用 intent 直 接 来 指 定 该 组 件 但 如 果 想 通 过 intent 过 滤 器 指 定, 则 可 以 使 用 隐 式 intent, 再 由 系 统 决 定 最 合 适 的 组 件, 不 管 它 是 其 他 应 用 程 序 组 件 还 是 本 机 操 作 系 统 自 带 组 件, 都 可 以 为 其 所 用 要 注 意 的 是, 其 他 应 用 程 序 中 的 隐 式 intent 不 需 要 在 当 前 程 序 中 的 AndroidManifest 文 件 注 册 声 明 Android 主 张 尽 可 能 利 用 隐 式 intent 为 用 户 提 供 强 大 的 功 能 模 块 框 架 当 新 开 发 的 组 件 能 满 足 隐 式 intent 过 滤 器 的 需 求, 就 可 以 用 它 来 替 代 Android 的 内 部 intent 譬 如, 在 Android 设 备 上 加 载 手 机 通 讯 录 当 用 户 选 择 一 个 联 系 人 时,Android 系 统 会 自 动 通 过 适 当 的 intent 过 滤 器 查 找 联 系 人 来 发 现 所 有 可 用 的 activity, 并 让 用 户 自 己 选 择 所 使 用 的 activity 秘 诀 6: 使 用 按 钮 和 文 本 框 我 们 使 用 触 发 事 件 充 分 演 示 多 个 activity 的 切 换 为 此, 我 们 在 示 例 中 引 入 了 按 钮 按 下 事 件 下 面 将 在 某 个 页 面 布 局 中 添 加 一 个 按 钮, 并 指 定 按 钮 被 按 下 时 的 动 作, 步 骤 如 下 (1) 在 XML 页 面 布 局 文 件 中 声 明 一 个 button 控 件 : (2) 通 过 布 局 文 件 中 的 button ID 声 明 button 控 件 对 象 : (3) 添 加 点 击 按 钮 事 件 的 OnClickListener 监 听 器 : (4) 重 载 监 听 器 的 onclick 方 法 执 行 你 想 要 的 动 作 : 我 们 可 以 通 过 改 变 屏 幕 上 显 示 的 文 字 向 用 户 反 馈 交 互 结 果 定 义 文 本 框 并 用 编 程 手 段 来 实 现 改 动, 步 骤 如 下 所 示
39 2.3 多 个 activity 29 (1) 在 XML 布 局 文 件 中 通 过 ID 声 明 一 个 textview 控 件 同 时 也 可 以 初 始 化, 设 定 为 某 个 值 ( 此 处 将 其 初 始 化 为 strings.xml 文 件 中 名 为 hello 的 字 符 串 值 ) 1 2 (2) 在 布 局 文 件 中 声 明 一 个 TextView 控 件, 指 向 TextView ID: 3 (3) 如 果 要 修 改 文 本 内 容, 可 以 使 用 settext 方 法 : 这 两 个 UI 技 巧 将 会 在 本 章 后 面 的 几 个 秘 诀 中 用 到 第 4 章 将 会 系 统 讲 解 Android 的 UI 控 件 秘 诀 7: 通 过 事 件 启 动 另 外 一 个 activity 在 本 秘 诀 中,MenuScreen 是 主 activity, 如 清 单 2-8 所 示, 这 里 将 启 动 PlayGame activity 其 触 发 事 件 为 Button 微 件 的 单 击 事 件 当 用 户 单 击 按 钮 时 会 运 行 startgame() 方 法, 该 方 法 启 动 PlayGame activity 而 当 用 户 在 PlayGame activity 中 点 击 按 钮 时, 则 会 调 用 finish() 方 法, 将 控 制 权 移 交 给 调 用 它 的 activity 启 动 activity 的 步 骤 如 下 : (1) 声 明 一 个 intent, 指 向 即 将 被 启 动 的 activity; (2) 调 用 该 intent 的 startactivity 方 法 ; (3) 在 AndroidManifest 中 声 明 其 他 的 activity 清 单 2-8 src/com/cookbook/launch_activity/menuscreen.java
40 30 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 在 匿 名 内 部 类 中 提 供 当 前 上 下 文 环 境 注 意, 在 通 过 点 击 按 钮 启 动 activity 时 还 需 要 作 额 外 的 考 虑, 如 清 单 2-8 所 示 intent 需 要 上 下 文 环 境 但 this 引 用 在 onclick 方 法 中 不 能 正 确 解 析 在 匿 名 内 部 类 中 提 供 当 前 上 下 文 环 境 的 方 法 如 下 : 使 用 Context.this 代 替 this; 使 用 getapplicationcontext() 来 代 替 this; 显 式 地 使 用 类 名 MenuScreen.this 调 用 一 个 在 适 当 的 上 下 文 环 境 级 别 中 声 明 的 方 法, 如 清 单 2-8 所 使 用 的 startgame() 以 上 方 法 都 可 以 互 相 转 换, 我 们 可 以 根 据 需 要 灵 活 运 用 清 单 2-9 所 示 的 PlayGame activity 只 有 一 个 按 钮, 带 有 onclick 监 听 器, 点 击 该 按 钮 调 用 finish() 方 法 会 将 控 制 权 返 回 给 主 activity 当 然 也 可 以 根 据 需 要 为 PlayGame activity 添 加 更 多 的 功 能 模 块, 每 个 分 支 模 块 的 代 码 都 可 以 调 用 finish() 方 法 结 束 该 activity 的 运 行 清 单 2-9 src/com/cookbook/launch_activity/playgame.java
41 2.3 多 个 activity 31 1 如 清 单 2-10 所 示, 该 按 钮 必 须 添 加 到 main.xml 布 局 文 件 中, 按 钮 的 ID 为 play_game, 必 须 与 清 单 2-8 中 所 声 明 的 内 容 相 匹 配 此 处 使 用 和 设 备 无 关 的 像 素 (dip) 定 义 按 钮 大 小, 我 们 将 会 在 第 4 章 深 入 讨 论 清 单 2-10 res/layout/main.xml 正 如 清 单 2-11 所 示,PlayGame activity 引 用 了 其 自 己 的 ID 为 end_game 的 按 钮, 该 按 钮 的 布 局 资 源 R.layout.game 对 应 的 是 XML 布 局 文 件 game.xml 清 单 2-11 res/layout/game.xml 虽 然 在 各 种 情 况 下, 文 本 都 可 以 显 式 地 写 在 文 件 中, 但 为 每 个 字 符 串 定 义 变 量 是 一 种 好 的 编 程 习 惯 在 本 秘 诀 中, 有 play_game 和 end_game 两 个 字 符 串 值, 它 们 被 定 义 在 一 个 字 符 串 XML 资 源 文 件 中, 见 清 单 2-12 所 示 11 12
42 32 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 清 单 2-12 res/values/strings.xml 最 后 需 要 在 AndroidManifest XML 文 件 中 为 PlayGame 这 个 新 类 声 明 其 默 认 的 action, 详 见 清 单 2-13 清 单 2-13 AndroidManifest.xml 秘 诀 8: 将 语 音 转 换 成 文 本 并 启 动 activity 显 示 结 果 本 秘 诀 将 演 示 在 启 动 activity 时 如 何 处 理 其 返 回 值 的 问 题 同 时 演 示 了 如 何 利 用 Google 的 RecognizerIntent 将 语 音 转 换 输 出 成 文 本 并 在 屏 幕 上 显 示 的 功 能 此 例 的 触 发 事 件 同 样 是 按 钮 单 击 事 件, 它 将 启 动 RecognizerIntent activity, 辨 识 麦 克 风 输 入 的 声 音 并 将 其 转 换 成 文 本 格 式 运 行 结 束 后 将 文 本 传 回 给 调 用 它 的 activity 当 返 回 时, 首 先 会 用 返 回 的 数 据 调 用 onactivityresult() 方 法, 然 后 调 用 onresume() 方 法 使 activity 正 常 运 行 因 为 返 回 的 activity 可 能 存 在 问 题, 导 致 不 能 正 确 传 递 值, 所 以 必 须 核 查
43 2.3 多 个 activity 33 resultcode 确 保 是 RESULT_OK 才 可 以 继 续 解 析 返 回 的 数 据 请 注 意, 启 动 回 传 数 据 的 activity 通 常 都 会 调 用 同 一 个 onactivityresult() 方 法 所 以 需 要 使 用 请 求 码 (request code) 判 断 哪 个 activity 要 回 传 数 据 当 activity 启 动 完 成 后, 就 会 把 控 制 权 重 新 交 回 给 调 用 它 的 activity, 并 用 同 样 的 请 求 码 调 用 onactivityresult() 方 法 启 动 带 有 返 回 值 的 activity 的 步 骤 如 下 (1) 通 过 intent 调 用 startactivityforresult(), 定 义 要 启 动 的 activity 并 标 记 requestcode (2) 重 载 onactivityresult() 方 法, 检 查 返 回 结 果 的 状 态 以 检 查 期 望 的 requestcode, 并 解 析 返 回 数 据 使 用 RecognizerIntent 的 步 骤 如 下 (1) 声 明 一 个 intent, 设 置 其 动 作 为 ACTION_RECOGNIZE_SPEECH (2) 向 intent 传 递 附 加 内 容, 至 少 EXTRA_LANGUAGE_MODEL 是 必 需 的 它 可 以 被 设 置 成 LANGUAGE_MODEL_FREE_FORM 或 者 LANGUAGE_MODEL_WEB_SEARCH (3) 返 回 的 数 据 包 中 包 含 可 能 和 原 文 匹 配 一 个 字 符 串 列 表 通 过 data.getstringarray- ListExtra 可 以 获 取 这 些 数 据, 它 将 映 射 为 ArrayList 类 型 资 源 供 稍 后 使 用 使 用 TextView 将 返 回 的 文 本 显 示 到 屏 幕 上 主 activity 的 内 容 参 见 清 单 2-14 此 外 还 有 main.xml 和 strings.xml 这 两 个 辅 助 文 件, 用 于 定 义 按 钮 和 存 放 结 果 的 TextView 具 体 内 容 可 以 参 考 秘 诀 7 中 清 单 2-10 以 及 清 单 2-12 的 内 容 当 前 只 需 要 在 AndroidManifest 中 声 明 主 activity, 这 点 和 秘 诀 1 中 的 步 骤 一 致 RecognizerIntent activity 是 Android 系 统 原 生 的 activity, 所 以 在 使 用 前 就 不 需 要 显 式 声 明 清 单 2-14 src/com/cookbook/launch_for_result/recognizerintent Example.java
44 34 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 秘 诀 9: 实 现 选 择 列 表 应 用 程 序 中 常 常 需 要 提 供 给 用 户 一 个 选 择 列 表 以 供 用 户 点 击 选 择, 利 用 Activity 的 子 类 ListActivity 就 可 以 实 现 该 功 能, 并 根 据 用 户 的 选 择 触 发 事 件 创 建 选 择 列 表 的 具 体 步 骤 如 下 (1) 首 先 创 建 一 个 类 扩 展 ListActivity 类, 而 非 Activity 类 : (2) 创 建 一 个 字 符 串 数 组, 为 每 个 选 项 指 定 标 签 :
45 2.3 多 个 activity 35 1 (3) 通 过 ArrayAdapter 调 用 setlistadapter() 方 法, 并 指 明 该 选 择 列 表 和 布 局 方 式 : 2 (4) 运 行 OnItemClickListener 监 听 确 定 用 户 选 择 了 哪 个 选 项, 并 针 对 其 作 出 反 馈 : 上 述 技 巧 在 下 一 个 秘 诀 中 也 会 用 到 秘 诀 10: 使 用 隐 式 intent 创 建 activity 隐 式 intent 不 会 确 切 指 定 需 要 使 用 哪 个 组 件 相 反, 它 们 通 过 过 滤 器 确 定 所 需 要 的 功 能, 再 由 Android 系 统 选 择 最 匹 配 该 功 能 的 组 件 intent 过 滤 器 可 以 是 动 作 数 据 或 者 分 类 (category) 动 作 是 最 常 用 的 intent 过 滤 器, 而 其 中 又 数 ACTION_VIEW 最 为 常 用 它 需 要 声 明 一 个 统 一 资 源 标 识 符 (URI), 用 来 向 用 户 显 示 数 据 对 于 给 定 的 URI 选 择 最 佳 的 处 理 方 式 例 如 在 下 面 的 范 例 中, 隐 式 intent 在 case 中 虽 然 句 法 格 式 相 同, 但 产 生 的 结 果 却 大 大 不 同 使 用 隐 式 intent 启 动 activity 的 步 骤 如 下 : (1) 为 intent 声 明 恰 当 的 intent 过 滤 器 (ACTION_VIEW ACTION_WEB_SEARCH 等 ); (2) 向 intent 添 加 运 行 某 个 activity 所 需 要 的 附 加 信 息 ; (3) 将 intent 传 递 给 startactivity() 清 单 2-15 将 演 示 如 何 处 理 多 个 intent
46 36 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 清 单 2-15 src/com/cookbook/implicit_intents/listactivityexample.java
47 2.3 多 个 activity 秘 诀 11: 在 activity 间 传 递 基 本 数 据 类 型 我 们 有 时 需 要 向 被 调 用 的 activity 传 递 数 据, 而 有 时 被 调 用 的 activity 反 过 来 也 需 要 向 调 用 它 的 activity 回 传 数 据 比 如, 游 戏 最 后 得 分 就 需 要 回 传 给 高 分 排 行 榜 界 面 activity 之 间 传 递 信 息 的 方 式 有 如 下 几 种 : 在 发 起 调 用 的 activity 中 声 明 相 关 变 量 ( 如 public int finalscore), 在 被 调 用 的 activity 中 就 可 以 为 这 些 变 量 赋 值 ( 如 CallingActivity.finalScore=score); 通 过 Bundle 包 附 加 数 据 ( 本 例 演 示 ); 利 用 Preference 属 性 存 储 数 据, 需 要 时 再 读 取 ( 将 会 在 第 5 章 中 阐 述 ); 利 用 SQLite 数 据 库 存 储 数 据, 需 要 时 再 读 取 ( 将 会 在 第 9 章 中 阐 述 ) Bundle 包 是 字 符 串 值 到 各 种 parcelable 类 型 的 映 射 它 在 向 intent 附 加 属 性 值 时 创 建 下 例 将 演 示 如 何 从 主 activity 向 它 所 启 动 的 activity 传 递 数 据, 并 且 在 后 者 修 改 数 据 之 后 回 传 结 果 在 StartScreen activity 中 声 明 了 两 个 变 量 ( 本 例 中 为 一 个 整 形 变 量 和 一 个 字 符 串 类 型 变 量 ) 当 创 建 intent 调 用 PlayGame 类 时, 通 过 putextra 方 法 将 这 两 个 变 量 传 给 intent 当 结 果 从 被 调 用 的 activity 返 回 后, 可 以 使 用 getextras 方 法 读 取 变 量 值 调 用 程 序 如 清 单 2-16 所 示 清 单 2-16 src/com/cookbook/passing_data_activities/startscreen.java
48 38 第 2 章 应 用 程 序 基 础 知 识 :Activity 和 Intent 传 递 给 PlayGame activity 的 变 量 值 可 以 使 用 getintextra 和 getstringextra 方 法 读 取 当 该 activity 结 束 后 调 用 intent 回 传 时, 我 们 就 可 以 使 用 putextra 方 法 返 回 数 据 到 发 出 调 用 的 activity 具 体 调 用 代 码 见 清 单 2-17 所 示
49 2.3 多 个 activity 39 清 单 2-17 src/com/cookbook/passing_data_activities/playgame.java
50
51
Microsoft Word zw
第 1 章 Android 概述 学习目标 : Android Android Android Studio Android Android APK 1.1 1. 智能手机的定义 Smartphone 2. 智能手机的发展 1973 4 3 PC IBM 1994 IBM Simon PDA PDA Zaurus OS 1996 Nokia 9000 Communicator Nokia 9000
Microsoft Word - 第1章 Android基本概念.docx
Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android
2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至
. Android 是 什 么 第 章 绪 论 2 3 本 章 将 主 要 介 绍 Android 操 作 系 统, 这 些 背 景 知 识 可 以 帮 你 更 好 地 理 解 本 书 的 内 容 你 将 了 解 到, 这 一 平 台 在 如 今 以 便 携 式 消 费 型 电 子 设 备 为 基 础 的 Internet 2.0 环 境 下 是 如 何 大 显 身 手 的 这 里 所 说 的 Internet
APP 103 學 年 度 嶺 東 科 技 大 學 資 訊 網 路 系 專 題 研 究 報 告 嶺 東 中 華 民 國 一 四 年 五 月 1
嶺 東 科 技 大 學 資 訊 網 路 系 專 題 研 究 報 告 嶺 東 APP 指 導 老 師 : 陳 志 樺 教 授 組 員 : 陳 俊 瑋 陳 崇 緣 江 健 民 張 宏 銘 駱 佳 琪 中 華 民 國 一 四 年 五 月 1 APP 103 學 年 度 嶺 東 科 技 大 學 資 訊 網 路 系 專 題 研 究 報 告 嶺 東 中 華 民 國 一 四 年 五 月 1 誌 謝 本 專 題 報
目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1
科 技 部 自 由 軟 體 專 案 原 始 程 式 碼 使 用 手 冊 Source Code Manual of NSC Open Source Project 可 信 賴 的 App 安 全 應 用 框 架 -App 應 用 服 務 可 移 轉 性 驗 證 Trusted App Framework -Transferability Verification on App MOST 102-2218-E-011-012
Microsoft Word - 201109手冊.doc
Google Android 平 台 上 之 遊 戲 APP- 極 限 拔 河 之 燃 燒 吧! 保 護 貼 朝 陽 科 技 大 學 資 訊 管 理 系 指 導 老 師 : 薛 夙 珍 教 授 學 生 : 鄭 人 豪 廖 奕 鈞 李 志 鋐 洪 忠 彥 張 廣 安 中 華 民 國 一 百 年 十 二 月 五 日 目 錄 一 簡 介... 1 1.1 文 件 目 的... 1 1.2 規 格 範 圍...
ESET Mobile Security for Android
ESET MOBILE SECURITY ANDROID 2.0 1....3 1.1 1.2...3...3 2....4 2.1 2.2 2.3 2.4 2.5 ESET...4 Google...4 Play Amazon...4...4...5 3....6 4....7 4.1 4.2 4.3...8...8...8 5....10 5.1 5.2 5.3 5.4 SIM...10 5.1.1...10
PRIV-5.1-User Guide
PRIV 版 本 : 5.1 用 户 指 南 发 布 日 期 : 2015-12-07 SWD-20151207085654359 目 录 设 置 和 基 本 知 识... 6 设 备 一 览... 6 插 入 SIM 卡... 7 插 入 媒 体 卡...8 在 主 屏 幕 之 间 移 动...10 使 用 导 航 按 钮 进 行 移 动...10 触 摸 屏 手 势...10 动 作 手 势...
ESET Mobile Security for Android
ESET MOBILE SECURITY ANDROID ( 3.0 ) 1....3 1.1 1.2...3...3 2....4 2.1 2.2 2.3 2.4 2.5 ESET...4 Google...4 Play Amazon...4...4...5 3....6 ESET MOBILE SECURITY ESET, spol. s r.o. ESET Mobile Security ESET,
111
修 平 科 技 大 學 資 訊 網 路 技 術 系 貪 食 蛇 組 長 :BN99017 賴 冠 諻 組 員 :BN99001 楊 欣 樺 BN99008 楊 典 瑾 BN99041 陳 宥 瑞 BN99043 張 州 凱 指 導 老 師 : 口 試 老 師 : 口 試 老 師 : 口 試 老 師 : 中 華 民 國 1 0 3 年 6 月 目 錄 目 錄 1 摘 要 3 第 一 章 緒 論 4 (
Cisco WebEx Meetings Server 2.6 版常见问题解答
Cisco WebEx Meetings Server 2.6 版 常 见 问 题 解 答 介 绍 2 应 用 程 序 和 文 档 共 享 2 主 持 加 入 和 设 置 会 议 2 在 Chrome 和 Firefox 上 加 入 WebEx 会 议 或 播 放 会 议 录 制 文 件 4 适 用 于 移 动 设 备 的 Cisco WebEx 4 下 载 Cisco WebEx 应 用 程 序
Contents Contents: Part 1 7 GALAXY Tab P P P.08 Part 2 1
Contents Contents: Part 1 7 GALAXY Tab --------------- P.04 ----------------------------------- P.06 ----------------------------------- P.08 Part 2 123 ------------------------------------ P.10 9 ---------------------------
Symantec™ Sygate Enterprise Protection 防护代理安装使用指南
Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate
Chttp://www.zte.com.cn/magazine ontents 目 次 OCTOBER 2011 专 题 策 划 Topic 20 玩 转 手 机 摄 影 人 人 都 可 以 是 大 师 没 有 单 反 的 专 业, 没 有 旁 轴 的 内 涵, 却 有 不 甘 寂 寞 的 心 拿 起 手 机 跟 我 来, 你 也 一 样 能 成 为 摄 影 大 师 P17 P28 焦 点 资 讯
Seagate_Dashboard_UG.book
Seagate Dashboard Seagate Dashboard 2013 Seagate Technology LLC. Seagate Seagate Technology Wave FreeAgent Seagate Technology LLC 1 GB 10 1 TB 10000 Seagate Seagate Technology LLC 10200 S. De Anza Boulevard
Adobe AIR 安全性
ADOBE AIR http://help.adobe.com/zh_cn/legalnotices/index.html iii............................................................................................ 1............................................................................................
产品手册
Norton 360TM 产 品 手 册 关 爱 环 境, 我 们 应 尽 的 责 任 Symantec 已 移 除 本 手 册 的 封 面, 以 降 低 对 环 境 的 影 响 Norton 360 产 品 手 册 本 手 册 介 绍 的 软 件 基 于 授 权 许 可 协 议 提 供, 且 只 能 在 遵 守 协 议 条 款 的 前 提 下 使 用 文 档 版 本 21.0 Copyright
User Guide
HP Pocket Playlist 用 户 指 南 部 件 号 : 699916-AA2 第 二 版 : 2013 年 1 月 第 一 版 : 2012 年 12 月 Copyright 2012, 2013 Hewlett-Packard Development Company, L.P. Microsoft Windows 和 Windows Vista 是 Microsoft Corporation
声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工
( 申 报 稿 ) 主 办 券 商 二 〇 一 五 年 十 月 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的 负 责 人 会 计 机 构
目 录 简 介.3 ` 体 系 结 构...4 数 据 层...5 数 据 连 接 器...6 Tableau Server 组 件...7 网 关 / 负 载 平 衡 器...8 客 户 端 :Web 浏 览 器 和 移 动 应 用 程 序...8 客 户 端 :Tableau Desktop..
Neelesh Kamkolkar, 产 品 经 理 Ellie Fields, 产 品 营 销 副 总 裁 Marc Rueter, 战 略 解 决 方 案 高 级 总 监 适 用 于 企 业 的 Tableau: IT 概 述 目 录 简 介.3 ` 体 系 结 构...4 数 据 层...5 数 据 连 接 器...6 Tableau Server 组 件...7 网 关 / 负 载 平 衡
HTC One E9+
用 户 指 南 HTC One E9+ 2 目 录 目 录 精 彩 功 能 个 性 化 设 置 9 拍 照 10 声 音 11 打 开 包 装 HTC One E9+ 12 双 nano SIM 卡 13 存 储 卡 15 电 池 16 打 开 或 关 闭 电 源 17 需 要 一 些 手 机 相 关 的 快 速 指 导? 17 手 机 设 置 和 传 输 第 一 次 设 置 HTC One E9+
学 院 人 才 培 养 分 项 自 评 报 告 结 果 汇 总 表 主 要 评 估 指 标 关 键 评 估 要 素 自 评 等 级 1.1 学 校 事 业 发 展 规 划 合 格 1. 领 导 作 用 1.2 办 学 目 标 与 定 位 合 格 1.3 对 人 才 培 养 重 视 程 度 合 格 1
目 录 学 院 人 才 培 养 分 项 自 评 报 告 结 果 汇 总 表 1 1 领 导 作 用 2 1.1 学 校 事 业 发 展 规 划 2 1.2 办 学 目 标 与 定 位 6 1.3 对 人 才 培 养 重 视 程 度 11 1.4 校 园 稳 定 15 2 师 资 队 伍 19 2.1 专 任 教 师 19 2.2 兼 职 教 师 24 3 课 程 建 设 27 3.1 课 程 内 容
2
1 2 CONTENTS 14 December 2012目 次 http://www.zte.com.cn/magazine 热 讯 早 点 03 我 型 我 秀 梦 想 女 神 05 中 兴 Grand Era U985 白 色 版 三 防 硬 汉 05 中 兴 G882 英 俊 小 生 05 中 兴 V790 5 寸 的 盛 宴 06 中 兴 N8300/ 中 兴 V8300 名 门 管 家
实 际 上,2012 年 以 来, 移 动 互 联 网 领 域 的 热 潮 已 经 有 所 回 落 从 产 品 创 新 社 区 极 客 公 园 的 跟 踪 数 据 来 看,2012 年 上 半 年 移 动 互 联 网 的 新 生 应 用 数 量 比 去 年 下 滑 了 30% 以 上, 结 合 投
站 在 2012 移 动 互 联 网 创 新 大 会 英 杰 汇 论 坛 的 舞 台 上, 灯 光 聚 焦 之 下, 开 场 演 讲 的 嘉 宾 UC 优 视 CEO 俞 永 福 下 意 识 眯 了 眯 眼 睛 移 动 互 联 网 创 新 者 鉴 未 来 5 年, 移 动 互 联 网 是 最 大 的 商 业 变 量, 任 何 虚 无 缥 缈 的 理 论, 有 效 期 都 无 法 超 过 3 个 月
Android Android Android SDK iv
Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux
CH01.indd
3D ios Android Windows 10 App Apple icloud Google Wi-Fi 4G 1 ( 3D ) 2 3 4 5 CPU / / 2 6 App UNIX OS X Windows Linux (ios Android Windows 8/8.1/10 BlackBerry OS) 7 ( ZigBee UWB) (IEEE 802.11/a/b/g/n/ad/ac
No.1 2013 http://www.zte.com.cn/magazine CONTENTS 20 03 06 新 闻 新 品 成 熟 持 重 中 兴 U817 纯 洁 优 雅 中 兴 U930HD 八 面 玲 珑 中 兴 U807 至 臻 品 质 中 兴 Grand S 新 月 刀 锋 中 兴 V965 再 战 江 湖 中 兴 N881F1 16 08 10 12 14 设 计 未 来 移
Flipout
MOTOROLA FLIPOUT TM MOTOROLA FLIPOUT MOTOROLA FLIPOUT - QWERTY www.motorola.com/ > > > 1 3.5mm Micro USB 2 .................................. 3............................ 5..................................
GoFlex Home UG Book.book
FreeAgent GoFlex Home 用 户 指 南 FreeAgent GoFlex Home 用 户 指 南 2011 Seagate Technology LLC. 保 留 所 有 权 利 Seagate Seagate Technology Wave 徽 标 及 FreeAgent 是 Seagate Technology LLC 或 其 某 个 子 公 司 的 商 标 或 注 册 商
BlackBerry Classic Smartphone-用户指南
BlackBerry Classic Smartphone 版 本 : 10.3.1 用 户 指 南 发 布 日 期 : 2015-03-02 SWD-20150302151727377 目 录 设 置 和 基 本 知 识... 6 当 前 版 本 的 新 特 色...6 BlackBerry 智 能 手 机 简 介... 14 设 备 一 览... 14 BlackBerry Classic 键...16
校友会系统白皮书feb_08
硕 士 研 究 生 招 生 管 理 系 统 1 产 品 白 皮 书 希 尔 数 字 校 园 硕 士 研 究 生 招 生 管 理 系 统 白 皮 书 目 录 1 产 品 概 述... 1 1.1 产 品 简 介... 1 1.2 应 用 范 围... 1 2 产 品 功 能 结 构 图... 2 3 产 品 功 能... 3 3.1 系 统 设 置... 3 3.2 信 息 发 布... 3 3.3
版 權 2014 贊 雲 科 技 股 份 有 限 公 司 版 權 保 護 聲 明 未 經 贊 雲 科 技 股 份 有 限 公 司 書 面 許 可, 本 檔 任 何 部 分 的 內 容 不 得 被 複 製 或 抄 襲 用 於 任 何 目 的 本 檔 的 內 容 在 未 經 通 知 的 情 形 下 可
版 權 2014 贊 雲 科 技 股 份 有 限 公 司 版 權 保 護 聲 明 未 經 贊 雲 科 技 股 份 有 限 公 司 書 面 許 可, 本 檔 任 何 部 分 的 內 容 不 得 被 複 製 或 抄 襲 用 於 任 何 目 的 本 檔 的 內 容 在 未 經 通 知 的 情 形 下 可 能 會 發 生 改 變, 敬 請 留 意 於 本 檔 中, 贊 雲 科 技 擁 有 專 利 權 商 標
indows CE 1996 Semiconductor Industry Association (SIA) Windows CE Windows Embedded CE 6.0 Windows CE Windows Embedded CE 6.0 Micr
Windows Embedded CE 6.0 Windows Embedded CE 6.0 : Windows Embedded CE 6.0 : Windows CE Windows Embedded CE 6.0 API CE 6.0 Windows CE W indows CE 1996 Semiconductor Industry Association (SIA) 1994 1000
ebook140-9
9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I
WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..
WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips ([email protected]),, IBM Developer Technical Support Center
epub83-1
C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C
翻 墙 问 答 享 受 互 联 网 所 带 来 的 便 利, 以 及 私 隐 保 障, 本 来 就 如 其 他 许 多 天 赋 权 利, 这 已 是 一 个 人 应 该 享 有, 无 分 国 界 和 种 族 很 不 幸, 在 中 国 引 入 互 联 网 不 久, 中 国 就 滥 用 很 多 本 来
翻 墙 问 答 助 你 翻 越 中 国 防 火 墙 作 者 : 李 建 军 自 由 亚 洲 电 台 2014 年 9 月 版 权 2014 自 由 亚 洲 电 台 翻 墙 问 答 享 受 互 联 网 所 带 来 的 便 利, 以 及 私 隐 保 障, 本 来 就 如 其 他 许 多 天 赋 权 利, 这 已 是 一 个 人 应 该 享 有, 无 分 国 界 和 种 族 很 不 幸, 在 中 国 引
目次
軟 體 工 程 期 末 報 告 網 路 麻 將 91703014 資 科 三 黃 偉 嘉 91703024 資 科 三 丘 祐 瑋 91703030 資 科 三 江 致 廣 1 目 次 壹 前 言 (Preface) P.4 貳 計 畫 簡 述 及 預 期 效 益 (Project Description and Expected Results) P.4 參 系 統 開 發 需 求 (System
宁夏专业技术人员服务平台
宁 夏 专 业 技 术 人 员 服 务 平 台 职 称 申 报 系 统 版 本 号 :1.0 ( 版 本 处 于 变 动 中, 请 您 随 时 下 载 新 版 ) 使 用 说 明 书 2014 年 3 月 4 日 目 录 一 使 用 要 求... 1 二 进 入 系 统... 2 三 用 户 注 册... 4 四 完 善 个 人 基 本 信 息... 6 五 职 称 申 报... 8 六 打 印 确
Wireless Plus.book
Seagate Wireless Plus 用 户 指 南 型 号 1AYBA2 Seagate Wireless Plus 用 户 指 南 2013 Seagate Technology LLC. 保 留 所 有 权 利 Seagate Seagate Technology Wave 徽 标 和 Seagate Media 是 Seagate Technology LLC 或 其 某 个 子 公
audiogram3 Owners Manual
USB AUDIO INTERFACE ZH 2 AUDIOGRAM 3 ( ) * Yamaha USB Yamaha USB ( ) ( ) USB Yamaha (5)-10 1/2 AUDIOGRAM 3 3 MIC / INST (XLR ) (IEC60268 ): 1 2 (+) 3 (-) 2 1 3 Yamaha USB Yamaha Yamaha Steinberg Media
得 獎 名 單 系統整合實作類 創意發想類 冠軍作品 ihelp Dumb 隊 冠軍作品 自我供電無線監控流量儀 龍水留你家隊 亞軍作品 Go 購樂 imoney 隊 亞軍作品 Saver&Warner TRy 共隊 輕鬆, 愜意, 智慧生活 Easy life easy go 隊 季軍作品 優秀作品 佳作作品 Secretary 我們也要報一隊 城市移動傳播系統 艾博兔 Able to 創意行銷坊隊
麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http
資 訊 學 科 中 心 6 月 份 電 子 報 用 MIT App Inventor2 程 式 拼 圖 來 開 發 Android 裝 置 應 用 程 式 李 啟 龍 學 習 Android 裝 置 程 式 設 計, 可 以 不 必 學 習 較 為 艱 澀 的 Java 語 法, 只 要 使 用 拼 圖 模 式 來 組 合 程 式, 就 可 以 完 成 Android 裝 置 的 應 用 程 式 MIT
<36322D5A CFB5C1D0D2C6B6AFB4F2D3A1BBFA2DB2FAC6B7B9E6B8F1B1EDA3A8C8FDD5DBD2B3A3A E30352E E706466>
ZEBRA ZQ500 Zebra ZQ500 ZQ500 3 / 72 ZQ510 4 / 104 ZQ520 ZQ500 ZQ500 ZQ500 MIL-STD 810g IP54 Link- OS Smart Ready 4.0 Print Touch ZQ500 Made for ipod / iphone / ipad (MFi) Wi-Fi Windows Mobile ZQ510 ZQ520
ATI-2019安裝手冊-v
#1 ...02 Acronis True Image...03 Acronis True Image 2019...03 Acronis True Image 2019...04 ( ) 64...04 ( ) Acronis Account...05 ( )...05 ( ) Acronis True Image...05 ( ) Windows...06 1....06 2....08 ( )
epub 61-2
2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +
2
1 2 时 尚 FASHION 技 术 宅 手 机 使 用 报 告 纯 粹 篮 球 武 汉 美 食 攻 略 王 洋 等 刘 嘉 良 等 黄 俊 2 19 31 我 图 我 秀 SHOW BAR 自 己 编 织 温 暖 牌 周 慧 芳 等 34 旅 游 TRAVEL 大 美 新 疆 亚 克 西 新 疆, 美 丽 而 遥 远 的 地 方 孙 昊 鹰 黄 国 忠 36 43 视 觉 VISION 不 完
Lecture01_Android介绍
移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 [email protected] 移动平台应用软件开发 课程建设小组 北京大学 二零一七年秋北京 Android是什么 Android不仅仅是一个操作系统 它更是一个完整的软件框 架 Android基于Linux内核 2005年Google公司收购了Android公司 Google公司选择使用Apache许可证开放Android源码
VX 680 安装指南
VX 680 安 装 指 南 VeriFone 部 件 号 DOC268-003-SC-A, 修 订 版 A VX 680 安 装 指 南 2010 VeriFone, Inc. 保 留 所 有 权 利 未 经 VeriFone, Inc. 书 面 许 可, 不 得 以 任 何 方 式 复 制 或 传 播 本 文 档 的 任 何 内 容 本 文 档 所 包 含 的 信 息 如 有 更 改, 恕 不
Internet Explorer 10
Internet Explorer 10 Windows Internet Explorer 10 Internet Explorer 10 Internet Explorer 10 Windows Windows 8 Internet Explorer 10 Windows Internet Explorer 10 Modern Desktop Windows 8 Internet Explorer
T1028_Manual_KO_V3 0.pdf
2009 : 2009/09 PC Microsoft, MS-DOS, Windows, Windows Sound System Microsoft Corporation Intel, Atom Intel Corporation Sound Blaster, Sound Blaster ProCreative Technology I AC AC AC AC AC - 115 V/60 Hz
典型自编教材
河 南 科 技 大 学 计 算 机 实 验 教 学 中 心 1. 计 算 机 文 化 基 础 实 验 指 导 书 2. 数 据 结 构 实 验 指 导 书 3. 操 作 系 统 实 验 指 导 书 4. 面 向 对 象 程 序 设 计 实 验 指 导 书 5. 数 据 库 原 理 实 验 指 导 书 6. 编 译 原 理 实 验 指 导 书 7. JAVA 程 序 设 计 实 验 指 导 书 8.
android讲座
湖 南 卓 景 京 信 息 移 动 互 联 行 业 -- JAVA+Android 湖 南 卓 景 京 信 息 主 要 内 容 一. 移 动 互 联 网 行 业 介 绍 二.Java 和 Android 三. 行 业 前 景 和 用 人 需 求 四. 我 们 该 怎 么 做 湖 南 卓 景 京 信 息 李 海 波 ( 软 件 架 构 师 项 目 经 理 技 术 总 监 ) QQ:50859246 行
untitled
DOP www.deltaww.com DOP (RS232/RS485/ RS422) DOP USB SD 30 100 PLC Best Performance Huma Beautiful Display Beneficial Feature 1 DOP LED 65536 2D n Machine Interface s 2 DOP-B DOP-B 4.3 inches Wide B03S211
財金資訊-83期.indd
APP APP APP APP / Apple 2008 7 App Store APP 2015 3 ios App Store APP 120 650 Google Android Market 2008 10 APP 2012 3 Google Android Play Play Play Play Google Play APP appfigures Google Play APP 2015
作 業 系 統 簡 介 光 有 電 腦 硬 體, 會 不 容 易 使 用 必 須 要 有 適 當 的 程 式, 才 方 便 操 作 硬 體 衍 生 作 業 系 統 需 求 : 提 供 方 便 使 用 者 執 行 程 式 平 台 有 效 使 用 各 種 電 腦 硬 體 資 源 Jingo C. Lia
第 三 章 作 業 系 統 概 論 Reporter : Jingo C. Liao 廖 正 宏 E-mail : [email protected] 章 節 列 表 1. 什 麼 是 作 業 系 統 2. 作 業 系 統 的 主 要 功 能 3. 作 業 系 統 的 核 心 程 式 4. 作 業 系 統 的 演 進 歷 史 5. 常 見 流 行 的 作 業 系 統 Jingo C. Liao
<4D6963726F736F667420576F7264202D2032303133C4EAC9EEDBDACAD0BCC6CBE3BBFAB2FAD2B5B7A2D5B9B7D6CEF6D1D0BEBF303531342E646F63>
深 圳 市 2013 年 软 科 学 研 究 项 目 2013 年 度 深 圳 市 计 算 机 产 业 发 展 分 析 研 究 深 圳 市 计 算 机 行 业 协 会 2014 年 4 月 30 日 1 目 录 一 计 算 机 行 业 的 基 本 情 况... 1 ( 一 ) 计 算 机 行 业 年 度 概 况... 1 ( 二 ) 计 算 机 行 业 的 重 要 性... 2 ( 三 ) 计 算
untitled
JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE
目 录
1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12
软件概述
Cobra DocGuard BEIJING E-SAFENET SCIENCE & TECHNOLOGY CO.,LTD. 2003 3 20 35 1002 010-82332490 http://www.esafenet.com Cobra DocGuard White Book 1 1....4 1.1...4 1.2 CDG...4 1.3 CDG...4 1.4 CDG...5 1.5
1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H
... 2... 4... 6... 8... 10... 12... 14... 16... 18... 20... 22... 24... 25... 26... 28 1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C)
附录J:Eclipse教程
附 录 J:Eclipse 教 程 By Y.Daniel Liang 该 帮 助 文 档 包 括 以 下 内 容 : Eclipse 入 门 选 择 透 视 图 创 建 项 目 创 建 Java 程 序 编 译 和 运 行 Java 程 序 从 命 令 行 运 行 Java Application 在 Eclipse 中 调 试 提 示 : 在 学 习 完 第 一 章 后 使 用 本 教 程 第
<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>
1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)
Junos Pulse Mobile Security R1 2012, Juniper Networks, Inc.
Junos Pulse Mobile Security 4.0 2012 6 R1 2012, Juniper Networks, Inc. Junos Pulse Mobile Security Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, California 94089 408-745-2000 www.juniper.net
RSBook_CN.indb
User s Guide www.rst.cn???????? VERSION 2 User s Guide VERSION 2 RosettaStone 2003 Fairfield Language Technologies RosettaStone Fairfield Language Technologies Bodoni Cyrillic Casady & Greene RosettaStone
使 用 本 说 明 书 感 谢 您 选 购 三 星 手 机 本 手 机 基 于 三 星 的 高 科 技 和 高 标 准, 为 您 提 供 极 高 品 质 的 移 动 通 信 和 娱 乐 享 受 本 使 用 说 明 书 专 门 用 于 指 导 您 了 解 手 机 的 功 能 与 特 性 请 先 阅 读
SCH-I559 使 用 说 明 书 使 用 本 说 明 书 感 谢 您 选 购 三 星 手 机 本 手 机 基 于 三 星 的 高 科 技 和 高 标 准, 为 您 提 供 极 高 品 质 的 移 动 通 信 和 娱 乐 享 受 本 使 用 说 明 书 专 门 用 于 指 导 您 了 解 手 机 的 功 能 与 特 性 请 先 阅 读 说 明 文 件 使 用 手 机 之 前, 请 先 仔 细 阅
Quick Start Guide
1 1 1 2 2 3 4 7 8 13 Windows 13 Macintosh 15 17 19 USB ( Windows ) 19... 19 C QA7-3236-V01 Exif Exif Exif Exif ICES-003 (Digital Apparatus) Class B (ENERGY STAR ) (ENERGY STAR ) (ENERGY STAR) (ENERGY STAR
NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2
S3C44B0 SDT DRAGNBOY MICROSTAR ARM 51 ARM S3C44B0 ARM SDT2.51 IAR ADS SDT2.51 S3C44B0 LEDTEST SDT ARM 1 2 SDT embed.8800.org SDT2.51 SDT2.51 ARM ARM CPU ARM SDT ADS ADS MULTI-ICE SDT JTAG JTAG SDT SDT2.51
Moto g5s Plus
Moto Google Apps - Moto G 5S Plus - Moto G 5S Plus 4 11:35 SIM Moto G 5S Plus? >? / 0.5 (SAR ) SAR > > SIM microsd Google Duo Moto Play USB/ - Moto G 5S Plus Wi-Fi Wi-Fi?? Wi-Fi Moto G 5S Plus Moto G 5S
Azure_s
Azure ? Azure Azure Windows Server Database Server Azure Azure Azure Azure Azure Azure Azure Azure OpenSource Azure IaaS Azure VM Windows Server Linux PaaS Azure ASP.NET PHP Node.js Python MS SQL MySQL
Secoway SVN3000技术建议书V1
华 为 BYOD 移 动 办 公 安 全 解 决 方 案 白 皮 书 华 为 技 术 有 限 公 司 二 〇 一 二 年 八 月 第 1 页, 共 26 页 2012 保 留 一 切 权 利 非 经 本 公 司 书 面 许 可, 仸 何 单 位 和 个 人 丌 得 擅 自 摘 抁 复 制 本 文 档 内 容 的 部 分 或 全 部, 幵 丌 得 以 仸 何 形 式 传 播 商 标 声 明 和 其 他
2-2 2.1 Mac OS X 相 信 不 少 用 過 Windows 作 業 系 統 的 朋 友 會 將 硬 碟 分 割 成 C D 兩 個 或 者 更 多 槽, 所 有 的 文 件 隨 便 往 D 槽 丟, 應 用 程 式 也 是 隨 便 安 裝 到 不 知 名 的 地 方, 等 到 需 要
2 Mac OS X 的 檔 案 與 硬 碟 在 這 個 章 節 裡 面, 我 們 要 開 始 學 習 在 Mac OS X 上 面 管 理 各 種 檔 案 和 硬 碟 從 認 識 各 個 資 料 夾 以 及 各 種 檔 案 類 型 出 發, 一 直 到 管 理 電 腦 上 的 硬 碟 以 及 安 裝 Windows, 基 本 的 概 念 有 了 之 後, 就 可 以 向 電 腦 恐 懼 症 說 再
spring12_preview.pdf
Spring 12 No.1 Sales Cloud YouTube Klout Visualforce Salesforce Mobile Android Sales Cloud Sales Cloud Salesforce for Outlook -to- Outlook Service Cloud YouTube Klout Radian6 Service Cloud Service Cloud
