5 10 15 20 25 30 基 于 Android 平 台 的 人 机 交 互 的 研 究 与 实 现 郁 亚 男 ( 北 京 邮 电 大 学 软 件 学 院, 北 京 100876) 摘 要 : 随 着 计 算 的 发 展, 计 算 变 得 越 来 越 自 由, 在 资 源 使 用 方 面 也 越 来 越 灵 活 移 动 终 端 由 于 无 线 通 信 网 络 传 输 速 率 的 提 高, 以 话 音 为 主 的 通 信 服 务 终 端 和 以 个 人 信 息 管 理 为 主 的 终 端 逐 渐 整 合, 发 展 成 以 智 能 手 机 为 代 表 的 移 动 终 端 随 着 移 动 终 端 在 普 通 用 户 中 的 普 及 应 用, 是 否 具 有 便 利 简 洁 美 观 的 人 机 交 互 成 为 制 约 移 动 终 端 发 展 的 一 项 关 键 技 术 人 机 交 互 的 设 计 优 劣 直 接 影 响 了 手 机 销 售 市 场 的 占 有 率 本 文 叙 述 了 人 机 交 互 和 移 动 终 端 各 自 的 发 展, 归 纳 了 当 前 主 要 的 智 能 终 端 操 作 系 统 的 优 缺 点, 分 析 了 各 自 的 未 来 前 景 然 后 本 文 针 对 Android 平 台 对 人 机 界 面 和 交 互 方 式 的 设 计 与 实 现 进 行 了 研 究 和 探 讨, 并 详 细 阐 述 了 实 现 中 的 关 键 点 关 键 词 : 人 机 交 互 ; 移 动 终 端 ;Android 平 台 ; 智 能 手 机 中 图 分 类 号 :TP315 RESEARCH AND IMPLEMENTATION OF MAN-MACHINE INTERACTION BASED ON ANDROID PLATFORM YU Yanan (Software Scholl,Beijing University of Posts and Telecommunications, Beijing 100876) Abstract: With the rapid development of technology, computing has become more and more flexible in the usage of resources. As the network transmission rate of wireless communication developing as well, mobile terminals have absorbed the personal information management gradually. Together with the voice-based communications services, mobile terminals are developing into smart phones. Because of the general popularity of mobile terminals, how to develop a convenient, simple, elegant man-machine interactive interface is a key technology which restricts the development of mobile terminals. Interactive interface directly affects the market share of mobile terminals.this paper describes the development of both the human-computer interaction and the mobile devices, and summarizes the advantages and disadvantages of the current operating system for intelligent terminals. After that this paper analyzes the man-machine interface and interactive approaches for the Android platform. Then this paper elaborates implementation of the UI and interactive approaches mentioned above along with the key points of implementation. Keywords:man-machine interaction; mobile terminal; Android platform; smart phone * 0 引 言 35 40 随 着 人 们 对 移 动 终 端 的 期 望 越 来 越 高, 仅 仅 能 完 成 话 音 通 讯 简 单 信 息 发 送 和 管 理 的 移 动 终 端 开 始 失 去 市 场 包 括 多 媒 体 彩 色 动 画 和 移 动 商 务 等 在 内 的 新 的 无 线 应 用 将 对 移 动 终 端 提 出 更 高 的 要 求, 使 移 动 终 端 从 提 供 以 话 音 为 主 的 通 信 服 务 逐 渐 发 展 到 以 数 据 为 主 的 通 信 服 务, 并 对 人 们 的 工 作 生 活 和 通 信 产 生 重 大 影 响 用 户 通 过 人 机 交 互 来 与 移 动 终 端 进 行 信 息 交 换 因 此, 交 互 的 体 验 度 直 接 关 系 到 系 统 的 性 能 能 否 充 分 发 挥, 能 否 使 用 户 准 确 高 效 轻 松 愉 快 地 操 作, 对 于 系 统 至 关 重 要 [1] 目 前, 国 内 软 件 开 发 者 在 软 件 的 设 计 过 程 中 很 注 重 软 件 的 开 发 技 术 及 其 所 具 有 的 业 务 功 能, 而 忽 略 了 用 户 对 人 机 交 互 的 需 求, 从 而 影 响 了 软 件 的 易 用 性 友 好 性 ; 对 界 面 设 计 的 研 究 也 集 中 在 界 面 设 计 技 术 设 计 手 段 上 软 件 开 发 人 员 在 设 计 时 以 经 验 为 参 考 依 据, 缺 乏 对 实 际 用 户 显 示 需 求 的 了 解 要 知 道 软 件 的 友 好 性 易 用 性 同 用 户 的 特 征 紧 密 相 联, 同 样 的 软 件 界 面, 不 同 用 户 可 能 有 截 然 相 反 的 评 价 因 作 者 简 介 : 郁 亚 男,(1986-), 女, 北 京 邮 电 大 学 研 究 生, 主 要 研 究 方 向 通 信 软 件. E-mail: yyn110@gmail.com - 1 -
45 50 55 此 分 析 用 户 的 特 征 了 解 用 户 的 需 求 和 操 作 习 惯, 是 开 发 软 件 界 面 的 必 要 步 骤, 必 须 引 起 足 够 的 重 视 [2] 当 前 智 能 手 机 操 作 系 统 中 所 具 有 的 人 机 交 互 功 能 多 种 多 样, 有 些 还 在 实 验 室 的 研 究 阶 段 华 丽 的 手 机 界 面 已 经 是 继 手 机 外 观 手 机 参 数 之 后 的 第 三 大 消 费 者 购 机 关 注 话 题 消 费 者 在 界 面 的 选 择 过 程 中, 除 了 看 中 兼 顾 UI 华 丽 度 之 外, 还 要 让 使 用 过 程 中 符 合 自 己 的 日 常 需 求 设 计 开 发 人 员 需 要 针 对 手 机 的 定 位 和 用 户 群 来 选 择 合 适 的 交 互 方 式, 保 证 功 能 上 的 适 用 和 价 位 的 合 理 是 否 具 有 便 利 简 洁 美 观 的 人 机 交 互 接 口 成 为 制 约 移 动 终 端 发 展 的 关 键 在 计 算 系 统 人 机 交 互 已 从 早 期 的 命 令 字 符 方 式 发 展 到 现 代 的 多 媒 体 图 形 用 户 交 互 形 式, 并 成 为 自 然 人 机 交 互 技 术 实 现 之 前 的 一 种 过 渡 方 式 在 移 动 终 端 的 研 发 过 程 中, 人 机 交 互 接 口 (MMI) 给 进 行 移 动 通 信 的 人 与 手 机 提 供 了 交 往 的 界 面, 它 的 设 计 优 劣 直 接 影 响 了 手 机 销 售 市 场 的 占 有 率 1 移 动 终 端 人 机 交 互 1.1 移 动 终 端 人 机 交 互 的 发 展 60 在 上 个 世 纪 的 八 十 年 代 末 到 九 十 年 代 初, 第 一 代 模 拟 移 动 通 信 面 试, 经 营 纯 粹 的 话 音 业 务, 数 据 传 输 速 率 只 有 9.6Kbps, 完 成 通 讯 功 能 和 进 行 信 息 浏 览 分 别 要 由 两 种 不 同 的 移 动 终 端 来 实 现, 这 两 类 终 端 的 人 机 接 口 都 很 简 单, 基 本 上 是 命 令 字 符 方 式 完 成 语 音 通 信 功 能 的 第 一 代 手 机 大 哥 大 如 图 1 所 示, 实 现 文 本 信 息 交 互 的 BP 机 的 如 图 2 所 示 : 65 70 75 图 1 第 一 代 手 机 大 哥 大 图 2 BP 机 九 十 年 代 中 期 开 始 逐 渐 进 入 了 第 二 代 数 字 移 动 通 信 时 代 ( 简 称 2G), 经 营 以 话 音 为 主 外 加 数 据 传 输 的 业 务, 数 据 传 输 速 率 提 高 到 了 14.4Kbps, 这 时 移 动 终 端 开 始 提 供 简 单 的 应 用, 如 电 话 薄 简 单 游 戏 计 算 器 时 钟 等, 并 出 现 通 过 手 机 等 移 动 终 端 发 送 文 本 型 消 息 的 SMS 服 务 (Short Messaging Service, 短 消 息 服 务 ) 这 个 时 期 Intemet 也 进 入 了 高 速 发 展 阶 段, 不 断 出 现 新 的 增 值 服 务, 如 网 络 传 真 网 络 电 话 电 子 邮 件 电 子 商 务 网 络 音 乐 网 络 影 视 等, 以 数 字 移 动 电 话 为 代 表 的 移 动 终 端 由 于 内 存 小 微 处 理 器 运 算 能 力 低 显 示 屏 幕 小 键 盘 按 钮 和 无 线 接 收 天 线 频 宽 受 限 等, 不 能 享 受 Intemet 带 来 的 技 术 进 步 由 于 以 上 原 因,1997 年, 多 家 通 信 行 业 的 跨 国 公 司 提 出 了 WAP 协 议 (WIRELESS APPLICATION PROTOCOL, 无 线 应 用 协 议 ), 定 义 了 一 系 列 将 互 联 网 内 容 过 滤 和 转 化 为 适 用 移 动 通 信 的 标 准, 使 Web 服 务 器 的 内 容 以 文 本 字 符 和 静 态 图 片 的 形 式 显 示 在 移 动 终 端 上 总 之, 这 个 阶 段 的 移 动 终 端 - 2 -
上 实 现 了 命 令 语 言 加 循 环 菜 单 的 人 机 交 互 接 口, 键 盘 扬 声 器 和 单 色 LCD 是 主 要 的 人 机 交 互 设 备, 如 图 3 所 示 有 些 浏 览 信 息 为 主 的 终 端 还 增 加 了 触 摸 屏, 声 音 文 本 字 符 和 静 态 单 色 图 片 是 人 机 交 互 活 动 中 信 息 的 主 要 载 体 80 85 图 3 2G 阶 段 的 手 机 随 着 中 国 3G 牌 照 的 发 放,TDCDMA/WCDMA/CDMA2000 技 术 投 入 商 用, 中 国 通 信 业 正 式 进 入 3G 时 代 随 着 无 线 通 信 网 络 传 输 速 率 的 提 高, 多 媒 体 彩 色 动 画 和 移 动 商 务 等 新 的 无 线 应 用 成 为 现 实 在 终 端 和 终 端 终 端 和 Intemet 之 间 传 递 文 本 彩 色 图 片 动 画 声 音 音 频 交 互 式 视 频 等 多 媒 体 信 息 为 了 实 现 多 媒 体 图 形 用 户 接 口,3G 移 动 终 端 如 图 4 所 示, 应 至 少 提 供 大 的 彩 色 触 摸 屏 键 盘 扬 声 器 麦 克 风 数 码 摄 像 头 等 90 95 图 4 3G 手 机 此 外, 针 对 嵌 入 式 设 备 和 消 费 类 电 器 技 术 的 推 出, 使 第 三 方 软 件 商 可 以 很 容 易 地 开 发 移 动 终 端 的 应 用 程 序, 也 使 移 动 终 端 能 以 C/S 或 B/S 方 式 直 接 访 问 Internet 的 全 部 信 息 移 动 终 端 软 件 的 体 系 结 构 由 早 期 的 功 能 驱 动 转 变 为 现 在 通 行 的 事 件 驱 动 机 制, 人 机 交 互 进 入 了 多 媒 体 互 动 形 式 图 5 展 示 来 了 用 手 指 触 摸 事 件 来 对 文 件 进 行 选 择 的 交 互 方 式 - 3 -
图 5 触 摸 屏 的 交 互 方 式 1.2 移 动 终 端 人 机 交 互 的 特 点 100 105 110 115 120 125 智 能 手 机 必 须 要 具 备 以 下 几 个 条 件 :1 拥 有 传 统 的 普 通 手 机 的 基 本 功 能, 主 要 是 指 接 打 电 话 和 收 发 短 信 ;2 拥 有 无 线 接 人 互 联 网 的 能 力, 高 端 产 品 还 应 该 支 持 3G 网 络 ;3 拥 有 PDA 的 主 要 功 能 主 要 有 PIM( 个 人 信 息 管 理 ). 日 程 记 事 任 务 安 排 多 媒 体 播 放 浏 览 网 页 等 ; 4 拥 有 一 个 开 放 性 的 操 作 系 统 这 个 操 作 系 统 上 可 以 安 装 和 应 用 互 联 网 上 提 供 的 第 三 方 应 用 程 序, 从 而 使 手 机 的 功 能 得 到 充 分 的 延 伸 手 机 是 一 个 技 术 关 联 度 相 当 高 的 消 费 类 电 子 产 品, 它 所 应 用 到 的 不 同 类 技 术 的 快 速 发 展, 也 迅 速 而 深 刻 地 影 响 着 界 面 及 其 交 互 方 式 譬 如 数 码 拍 照 功 能, 以 前 的 手 机 就 不 具 备 拍 照 的 交 互 移 动 终 端 图 形 用 户 界 面 指 一 种 图 形 方 式 的 用 户 接 口, 是 图 标 窗 口 及 屏 幕 上 其 它 图 形 图 像 的 集 合 它 们 提 供 了 用 户 与 操 作 系 统 交 互 的 办 法, 从 而 简 单 方 便 地 完 成 用 户 与 应 用 程 序 的 交 互 就 界 面 交 互 方 式 的 发 展 趋 势 而 言, 呈 现 出 如 下 的 几 点 : 1. 可 扩 展 性 和 可 配 置 性 几 乎 每 种 嵌 入 式 设 计 方 案 都 具 有 各 自 不 同 的 特 点, 所 以 嵌 入 式 图 形 用 户 界 面 足 够 灵 活 以 适 应 各 种 硬 件 设 备, 而 且 在 不 同 的 嵌 入 式 环 境 中, 应 该 仅 仅 包 括 那 些 必 要 的 部 分 采 用 面 向 对 象 的 设 计 方 法 和 可 扩 展 的 体 系 结 构 可 以 获 得 较 好 的 可 扩 展 性 2. 资 源 使 用 的 高 效 性 桌 面 的 图 形 用 户 界 面 面 向 的 是 运 行 在 高 端 处 理 器 上 拥 有 巨 大 内 存 资 源 的 系 统 而 一 个 嵌 入 式 图 形 用 户 界 面 必 须 适 应 内 存 小 处 理 器 能 力 差 别 大 的 系 统 环 境 3. 可 定 制 性 由 于 嵌 入 式 设 备 一 般 都 是 服 务 于 某 种 专 门 的 目 的, 它 们 要 求 客 户 可 定 制 的 用 户 界 面, 而 不 是 那 种 静 态 的 预 定 义 的 无 法 满 足 特 殊 图 形 用 户 界 面 需 求 的 观 点, 图 形 用 户 界 面 的 外 观 和 事 件 处 理 的 方 式 等 都 应 该 能 通 过 直 观 简 单 的 方 法 进 行 定 制 4. 国 际 化 嵌 入 式 设 备 必 须 使 用 相 同 的 基 本 设 计 以 适 应 不 同 国 家 用 户 的 需 要 关 键 在 于 图 形 用 户 界 面 要 有 灵 活 的 组 件 通 过 支 持 应 用 的 本 地 化, 可 以 对 用 户 界 面 上 的 文 本 以 及 各 种 数 据 和 数 字 格 式 进 行 翻 译 使 用 UNICODE 的 16 位 宽 字 符, 可 以 支 持 中 文 等 亚 洲 字 符 5. 简 单 性 - 4 -
130 对 嵌 入 式 应 用 开 发 来 说, 它 具 有 严 格 的 时 间 限 制, 即 要 求 尽 可 能 短 的 面 市 时 间 使 用 面 向 对 象 技 术, 设 计 清 晰 直 观 的 类 派 生 关 系, 更 加 容 易 让 人 理 解 提 供 可 视 化 的 图 形 应 用 程 序 开 发 工 具 是 一 种 广 受 用 户 欢 迎 的 方 式 用 户 界 面 对 于 手 机 来 说 可 谓 是 一 个 永 恒 的 话 题 用 户 界 面 研 发 的 目 的 是, 可 以 让 用 户 在 任 何 环 境 下 选 择 最 舒 适 的 输 入 方 式 科 学 实 验 室 中 的 研 究 主 题 目 前 演 进 到 了 手 势 控 制 阶 段, 即 人 可 以 在 不 接 触 手 机 的 情 况 下 对 手 机 进 行 控 制 和 操 作 未 来 用 户 界 面 将 会 更 加 智 能 更 灵 动, 能 自 动 适 应 用 户 的 使 用 场 景, 并 针 对 不 同 的 使 用 情 境 呈 现 不 同 的 个 性 化 特 征, 使 用 户 感 觉 更 方 便 更 易 用, 通 过 改 善 用 户 体 验 来 提 高 用 户 的 满 意 度 [3] 1.3 移 动 终 端 人 机 交 互 设 计 原 则 135 140 145 150 155 有 自 己 特 色 的 用 户 界 面 的 设 计 和 开 发 要 遵 循 以 用 户 为 中 心 的 概 念, 让 手 机 的 使 用 更 简 单 更 直 觉 除 了 要 细 心 观 察 消 费 者 的 生 活 点 滴 认 真 倾 听 他 们 的 需 求 外 并 进 一 步 与 消 费 者 沟 通 切 实 了 解 他 们 实 际 生 活 上 所 需 的 种 种 应 用 与 服 务 用 户 消 费 界 面 的 主 要 原 则 是 个 性 化 资 讯 的 及 时 化, 和 用 意 想 不 到 的 功 能 来 使 用 户 惊 讶 从 而 获 得 更 好 的 用 户 体 验 要 想 实 现 以 上 几 点, 我 们 在 交 互 设 计 时 应 该 遵 循 以 下 原 则 [4] : 1. 关 注 用 户 了 解 用 户 的 年 龄 技 能 文 化, 他 们 对 应 用 的 需 求, 使 用 的 设 备, 何 时 何 地 如 何 使 用 设 备 ); 用 户 优 先 的 设 计 心 态 ( 用 户 通 常 是 任 务 导 向 的 行 为 模 式 ); 更 早, 更 频 繁 的 由 真 实 用 户 来 测 试 2. 显 示 正 确 的 内 容 最 常 用 的 操 作 需 要 最 快 被 用 户 看 到 并 且 可 用 ; 不 太 常 用 的 功 能 可 以 放 到 菜 单 里 面 3. 给 予 用 户 适 当 的 回 馈 交 互 式 的 UI 元 素 最 少 需 要 反 映 出 4 种 不 同 的 状 态 ( 默 认, 禁 用, 聚 焦, 按 下 ); 保 证 操 作 的 结 果 是 清 晰 可 见 的 ; 多 给 予 用 户 进 度 提 示, 但 是 不 要 干 扰 他 们 当 前 的 操 作 4. 有 章 可 循 的 行 为 模 式 行 为 模 式 遵 循 用 户 的 期 望 ( 正 确 的 操 作 活 动 堆 栈, 显 示 用 户 期 望 看 到 的 信 息 和 动 作 ); 使 用 合 适 的 方 式 来 加 强 功 能 可 见 性 ( 可 点 击 的 元 素 就 应 该 看 起 来 是 可 以 点 击 的 ); 如 果 用 户 完 成 一 项 任 务 需 要 复 杂 的 操 作, 重 新 思 考 设 计 5. 容 忍 错 误 只 允 许 有 意 义 的 操 作 ( 适 当 禁 用 一 些 按 钮 ); 尽 量 减 少 不 可 回 退 的 操 作 ; 允 许 回 退 (undo) 比 使 用 确 定 对 话 框 更 好 ( 实 际 上, 应 该 尽 量 少 用 确 定 对 话 框, 它 对 用 户 是 一 种 干 扰 ) 2 Android 平 台 2.1 Android 平 台 介 绍 160 Android 一 词 的 本 义 指 机 器 人, 同 时 也 是 Google 于 2007 年 11 月 5 日 宣 布 的 基 于 Linux 平 台 的 开 源 手 机 操 作 系 统 的 名 称, 该 平 台 由 操 作 系 统 中 间 件 用 户 界 面 和 应 用 软 件 组 成, 号 称 是 首 个 为 移 动 终 端 打 造 的 真 正 开 放 和 完 整 的 移 动 软 件 Android 的 最 大 优 势 就 是 开 放 性 终 端 机 制 造 商 可 以 像 安 装 零 配 件 一 样, 随 意 将 各 种 用 户 界 面 (UI) 或 软 件 装 入 Android 这 一 共 同 的 操 作 系 统 中, 而 且 谷 歌 不 收 取 任 何 使 用 费 [5] Android 作 为 Google 企 业 战 略 的 重 要 组 成 部 分, 将 进 一 步 推 进 随 时 随 地 为 每 个 人 提 供 信 息 这 一 企 业 目 标 的 实 现 全 球 为 数 众 多 的 移 动 电 话 用 户 正 在 使 用 各 种 基 于 Android 的 电 - 5 -
165 话 谷 歌 的 目 标 是 让 ( 移 动 通 讯 ) 不 依 赖 于 设 备 甚 至 平 台 出 于 这 个 目 的,Android 将 补 充, 而 不 会 替 代 谷 歌 长 期 以 来 奉 行 的 移 动 发 展 战 略 : 通 过 与 全 球 各 地 的 手 机 制 造 商 和 移 动 运 营 商 结 成 合 作 伙 伴, 开 发 既 有 用 又 有 吸 引 力 的 移 动 服 务, 并 推 广 这 些 产 品 2.2 与 其 它 手 机 系 统 比 较 170 175 180 Android 和 iphone OS Symbian 等 系 统 或 平 台 在 商 业 运 作 上 有 很 大 的 不 同 :iphone OS 只 为 苹 果 的 iphone 所 用, 并 由 苹 果 严 格 控 制 ; 诺 基 亚 索 爱 各 自 运 维 着 与 自 家 硬 件 紧 密 结 合 的 Symbian 版 本 ; Android 则 采 用 了 联 盟 的 方 式, 几 乎 世 界 上 所 有 的 大 厂 商 都 加 入 了 其 手 机 开 放 联 盟 Android 作 为 一 个 通 用 的 手 机 平 台, 整 套 平 台 是 完 全 开 源 和 免 费 的, 任 何 一 家 厂 商 均 可 免 费 使 用, 而 Mobile 是 需 要 收 取 一 定 授 权 费 用 这 也 就 是 为 什 么 Android 市 场 占 有 率 在 短 时 间 内 大 大 超 过 Windows Mobile 的 原 因 对 于 手 机 用 户 而 言,Android 拥 有 应 用 程 序 Market, 类 似 于 iphone App Store,Market 上 有 大 量 的 应 用 程 序,Android 手 机 可 以 通 过 网 络 在 线 安 装, 且 绝 大 部 分 应 用 程 序 免 费 并 开 源, 这 是 Market 优 于 App Store 的 地 方 通 过 以 上 分 析 对 这 几 种 手 机 开 发 平 台 的 特 点 进 行 归 纳 比 较,Symbian 的 强 势 Windows Mobile 的 价 格 iphone 的 封 闭 都 是 相 比 Android 之 下 的 弱 点 从 中 国 范 围 来 看, 中 国 移 动 走 在 Android 潮 流 的 前 列, 已 经 完 成 了 Android 定 制, 还 开 发 了 不 少 自 有 的 中 间 件 和 应 用, 为 以 后 的 业 务 预 置 铺 垫 了 基 础 相 信 未 来 Android 以 其 开 源 低 价 易 开 发 等 特 点 必 将 在 移 动 终 端 平 台 市 场 上 占 有 一 席 之 地, 基 于 以 上 原 因 本 文 采 用 最 新 推 出 的 Android 做 为 人 机 交 互 研 究 的 目 标 平 台 3 Android 平 台 的 人 机 交 互 方 式 及 其 实 现 185 Android 手 机 的 交 互 模 式 多 种 多 样, 为 了 贴 合 当 前 需 求 和 科 技 发 展, 本 节 分 析 设 计 了 以 下 方 式 : 实 体 按 钮 键 盘 屏 幕 手 势 视 觉 反 馈 声 音 反 馈 触 感 反 馈 方 向 变 化, 以 及 状 态 栏 通 知 [6] 下 面 选 取 两 个 比 较 新 颖 的 代 表 了 未 来 交 互 发 展 的 两 种 方 式 来 着 重 探 讨, 它 们 是 : 触 感 反 馈 运 动 感 应 3.1 触 感 反 馈 190 Android 手 机 中, 长 按 操 作 通 常 提 供 了 触 感 反 馈 当 你 长 按 某 条 目 时, 手 机 会 轻 轻 振 动 一 下, 然 后 显 示 长 按 的 上 下 文 菜 单 这 一 项 功 能, 受 限 于 用 户 手 机 是 否 启 用 触 感 反 馈 另 外, 如 果 你 的 应 用 程 序 某 个 操 作 需 要 特 别 引 起 注 意, 也 可 以 使 用 触 感 反 馈, 比 如 滚 珠 迷 宫 等 游 戏, 使 用 触 感 反 馈 可 以 生 动 地 模 拟 真 实 效 果 3.1.1 触 感 反 馈 的 实 现 195 200 开 发 者 可 以 自 己 设 置 震 动 (Vibration) 事 件, 命 令 其 震 动 的 时 间 长 短 震 动 事 件 的 周 期 等 要 让 手 机 震 动, 需 创 建 Vibrator 对 象, 获 取 震 动 服 务 的 实 例 句 柄 然 后 通 过 调 用 vibrate 方 法 来 达 到 震 动 的 目 的, 在 Vibrator 的 构 造 器 中 有 4 个 参 数, 前 3 个 的 值 是 设 置 震 动 的 大 小, 在 这 边 可 以 把 数 值 改 成 一 大 一 小, 这 样 就 可 以 明 显 感 觉 出 震 动 的 差 异, 而 最 后 一 个 值 是 设 置 震 动 的 时 间 当 repeat = 0 时, 震 动 会 一 直 持 续, 若 repeat = 1 时, 震 动 只 会 出 现 一 轮, 运 行 完 毕 后 就 不 会 再 有 动 作 新 建 一 个 Vibrator 对 象 的 代 码 : mvibrator01=(vibrator)getapplication().getsystemservice( - 6 -
Service.VIBRATOR_SERVICE); 然 后 在 触 发 震 动 的 方 法 中 设 置 震 动 参 数 就 可 以 了 : 205 mvibrator01.vibrate( new long[]{100,10,100,1000},-1); 取 消 震 动 调 用 cancel 方 法 : mvibrator01.cancel(); 需 要 注 意 的 是 震 动 事 件 必 须 允 许 Android.permission.VIBRATE 权 限 在 AndroidManifest.xml 中 添 加 如 下 权 限 设 置 <uses-permission Android:name="Android.permission.VIBRATE" /> 210 215 220 3.2 运 动 感 应 新 型 的 手 机 现 在 都 加 入 了 三 维 规 则 加 速 器 (accelerometer), 所 以 手 势 动 作 的 检 测 也 逐 渐 成 为 移 动 应 用 开 发 的 一 部 分 用 户 随 时 可 能 旋 转 他 的 Android 手 机, 他 们 希 望 正 在 浏 览 的 内 容 随 之 作 出 适 当 调 整, 如 图 3-11 所 示 当 然, 如 果 你 的 应 用 程 序 大 部 分 不 支 持 方 向 变 化, 只 有 在 特 定 的 界 面 ( 比 如 播 放 全 屏 视 频 时 ), 并 且 仅 以 特 定 方 向 显 示, 不 响 应 设 备 方 向 的 变 化, 这 也 是 合 理 的 注 意, 方 向 变 化 最 终 在 用 户 面 前 是 否 响 应, 和 声 音 触 感 一 样, 取 决 于 用 户 终 端 的 设 置 还 可 以 通 过 晃 动 程 度 的 检 测 来 让 手 机 做 一 些 事 情, 比 如 摇 一 摇 手 机 就 可 以 切 换 程 序 或 者 想 擦 掉 一 副 画 好 的 画, 可 以 轻 微 摇 一 摇 你 的 手 机, 就 可 以 擦 掉 画 布 里 的 图 像 了, 还 有 比 较 好 玩 的 应 用 是 日 程 便 签, 完 成 了 的 项 目, 轻 轻 摇 摇 就 自 动 删 除 了 通 过 对 运 动 方 向 和 剧 烈 程 度 的 感 应, 应 用 可 以 灵 活 地 实 现 各 种 功 能 3.2.1 运 动 感 应 的 实 现 225 230 235 Android 中 的 很 多 游 戏 和 应 用 都 使 用 了 重 力 感 应 的 技 术, 可 以 通 过 重 力 感 应 程 度 的 检 测 来 让 手 机 做 一 些 事 情, 比 如 摇 一 摇 手 机 就 可 以 切 换 程 序, 或 检 测 到 晃 动 这 个 真 实 的 动 作, 屏 幕 做 出 模 拟 的 反 应 来, 非 常 有 意 思 现 在 来 实 现 通 过 晃 动, 使 屏 幕 在 全 屏 和 非 全 屏 的 切 换 Android 重 力 感 应 系 统 的 坐 标 系 以 屏 幕 的 左 下 方 为 原 点, 箭 头 指 向 的 方 向 为 正 从 -10 到 10, 以 浮 点 数 为 等 级 单 位, 典 型 情 形 时 三 维 的 坐 标 值 如 下 : 当 x=y=0 时, 手 机 处 于 水 平 放 置 状 态 当 x=0 并 且 y>0 时, 手 机 顶 部 的 水 平 位 置 要 大 于 底 部, 也 就 是 一 般 接 听 电 话 时 手 机 所 处 的 状 态 当 x=0 并 且 y<0 时, 手 机 顶 部 的 水 平 位 置 要 小 于 底 部 手 机 一 般 很 少 处 于 这 种 状 态 当 y=0 并 且 x>0 时, 手 机 右 侧 的 水 平 位 置 要 大 于 左 侧, 也 就 是 右 侧 被 抬 起 当 y=0 并 且 x<0 时, 手 机 右 侧 的 水 平 位 置 要 小 于 左 侧, 也 就 是 左 侧 被 抬 起 当 z=0 时, 手 机 平 面 与 水 平 面 垂 直 当 z>0 时, 手 机 屏 幕 朝 上 当 z<0 时, 手 机 屏 幕 朝 下 检 测 shake 动 作 其 实 有 好 多 种 方 法, 这 里 使 用 一 个 公 式 来 计 算, 这 个 公 式 很 粗 糙 但 如 果 你 并 不 关 心 shake 的 一 些 具 体 细 节, 只 是 想 知 道 是 不 是 shake 动 作 而 已, 这 个 公 式 足 够 了 首 先 在 Activity 里, 声 明 继 承 这 个 SensorListener: - 7 -
240 1. public class ShakeActivity extends Activity implements SensorListener 然 后 你 需 要 获 取 一 个 SensorManager: 2. sensormgr = (SensorManager) getsystemservice(sensor_service); 245 250 255 260 265 270 275 280 然 后 注 册 这 个 感 应 器 需 要 所 获 得 的 数 据 的 flags: 3. ensormgr.registerlistener(this,sensormanager.sensor_accelerometer,sensorm anager.sensor_delay_game); 在 onsensorchange() 方 法 中, 用 这 个 公 式 来 确 定 shake 动 作 : 4. public void onsensorchanged(int sensor, float[] values) { 5. if (sensor == SensorManager.SENSOR_ACCELEROMETER) { 6. long curtime = System.currentTimeMillis(); 7. // 每 100 毫 秒 检 测 一 次 8. if ((curtime - lastupdate) > 100) { 9. long difftime = (curtime - lastupdate); 10. lastupdate = curtime; 11. 12. x = values[sensormanager.data_x]; 13. y = values[sensormanager.data_y]; 14. z = values[sensormanager.data_z]; 15. 16. float speed = Math.abs(x+y+z - last_x - last_y - last_z) / difftime * 10000; 17. 18. if (speed > SHAKE_THRESHOLD) { 19. Log.d( sensor, shake detected w/ speed: + speed); 20. Toast.makeText(this, shake detected w/ speed: + speed, Toast.LENGTH_SHORT).sho w(); 21. } 22. last_x = x; 23. last_y = y; 24. last_z = z; 25. } 26. } 27. } 设 置 这 个 shake 的 速 度 临 界 点 值 定 义 为 : 28. private static final int SHAKE_THRESHOLD = 800; 这 样 检 测 的 实 现 就 完 成, 在 开 发 中, 只 需 要 将 第 16 17 行 中 的 内 容 修 改 为 自 己 想 做 的 事 情 就 好 了 4 结 论 本 章 主 要 研 究 了 介 绍 移 动 终 端 人 机 交 互 的 发 展 和 特 点, 及 其 设 计 原 则, 之 后 介 绍 了 Android 平 台 及 其 优 势, 并 在 此 基 础 上 挑 出 两 个 较 典 型 的 交 互 方 式 给 出 了 其 在 Android 平 台 上 的 实 现 - 8 -
285 290 [ 参 考 文 献 ] (References) [1] 张 庆 丰 / 译. 人 机 交 互 ( 第 三 版 )[M]. 北 京 : 电 子 工 业 出 版 社,2007 [2] 孟 祥 旭, 李 学 庆. 人 机 交 互 技 术 : 原 理 与 应 用 [M]. 北 京 : 清 华 大 学 出 版 社,2004 [3] 董 士 海. 人 机 交 互 的 进 展 及 面 临 的 挑 战 [J]. 计 算 机 辅 助 设 计 与 图 形 学 学 报,2004,25(1):45-47 [4] 百 度 用 户. Android_ 百 度 百 科 [OL].http://baike.baidu.com/view/1241829.htm [5] Roger. Android 优 化 UI 秘 籍 [OL].[2009-10-3] http://android.google.org.cn [6] 阿 智. Android 手 机 应 用 程 序 界 面 设 计 指 南 [OL].[2010-8-2]. http://azero.tsang.blog.163.com/ - 9 -