面向平板电脑用户体验、电源和性能的设计指南

本文是从应用设计者和作者的角度撰写的。我的目的是为应用设计者和用户界面设计者提供建议和提醒,并为处理这些问题提供方法指南。这并不是目标操作系统的“必办”事项列表,而是对移动市场中需处理的某些硬件和软件问题的有益探究。

用户输入方法和流程的设计需要考虑所设计的应用依附运行的硬件。假如我们希望我们的应用可以在各种不同的硬件设计上运行,这些指南将告诉您设计用户界面和整体用户体验时应考虑的问题,从而为您提供帮助。这些是在过去几年中我们在与应用厂商协作以使其软件适应英特尔硬件的工作中所解决的实际问题。

硬件现实情况

我们针对移动应用所使用的硬件在很多关键方面都有所不同,了解这一信息将有助于我们调整现有软件,使其适应移动平台。

首先,应用设计者在明确其用户体验 (UX) 时应先回答一系列问题。回答完这些问题后,您将能够更好地处理以下所述的其它问题。

  1. 您是从一个现有应用开始并对它进行调整,还是专门围绕目标设备对您的应用进行了全新设计?
  2. 您的应用是专门为某个特定市场而设计的吗?平板电脑还是手机?
  3. 您会使用硬件提供的标准输入方法还是会对其进行调整,兼容其它新方法(如滑动)?
  4. 您知道支持目标硬件的传感器都包括哪些吗?了解这些信息后,请确定您现在及以后支持的传感器。
  5. 硬件支持手指触摸、笔触还是全部支持?
  6. 您将使用何种语言和工具开发您的应用?确认这些工具支持您所需的传感器和方法。


获得以上问题的答案后,您需要查看您的 UI 并考虑它将如何适应平板电脑的外形。由于是触摸显示屏,所以您应该考虑意外点触。当确认选项可能会造成干扰时,您的用户将如何解决“误拨”等意外事件?确保用于触摸的选项目标区域足够大。用户能正确选择目标项吗?建议触摸 UI 使用 10 毫米的点触区域。

以下是需要考虑的一系列问题以及处理这些问题的建议。

问题与建议

屏幕使用空间比台式机小

  • 取消不必要的 UI 组件,使用全屏。
  • 在某些案例项中,某些元素(如对话框)可能会受限于屏幕的尺寸。
  • 将关闭按钮、最小化按钮和其它静态 UI 进行透明处理,以获取尽可能多的可用屏幕空间。当然,由于您想要使用的目标操作系统不同,某些情况可能也会有所不同。此外,某些问题可能超出了应用的控制。
  • 避免将选择区域设置在屏幕边缘和角落,因为这样手指将难以选择。
  • 确保用户能够以不同的屏幕分辨率访问设备上的 UI。
  • 参照表格中央,将对话框定位在左上。在适应不同屏幕尺寸时,这种方法非常有用。

屏幕与对话框不匹配

  • 考虑较宽的对话框;将您的界面设计为对话框较小。
  • 对话框一般高而窄;利用较宽的屏幕进行设计。

屏幕不够大,无法显示数据

  • 使用控制按钮足够大的纵向滚动,以便于使用。
  • 在大多数情况下,优先考虑纵向滚动,而不是横向滚动。
  • 向上、下、左、右滚动使得应用难以使用。

界面需要额外输入

  • 使用硬件按钮能实现大部分所需功能。
  • 尽可能使用提供的硬件,以实现最大优势。

意外激活

  • 为了进行手指或笔触输入,按钮必须足够大吗?您将使用哪种?
  • 为用户提供一种方法,可以退出意外选择的选项。

所需的额外导航

  • 使用屏幕导航控制按钮。确保这些按钮足够大,以便使用和选择

物理屏幕尺寸和分辨率并不相同

  • 确保您的文本在实际设备上可读。
  • 了解可能的默认分辨率。例如某些尺寸为 800x480 和 1024x600 的屏幕通过视频扩展技术可以将分辨率扩展为 800x600 和 1024x768。
  • 现在,大部分开发工具都支持模拟器。如果您没有实际设备,使用模拟器运行您的 UI,确认其实用性和功能。

某些设备是可选的(可选设备可能不存在)

  • 请勿使用光驱,使用网络安装或其它方法解决该问题。
  • 了解设备用户获取您应用和进入该市场的可用方法。如欲了解 AppUp,请访问 http://www.appup.com

难以进行右击和多按钮点击

  • 避免难以进行的点击。为常用活动设计简单的方法。
  • 在鼠标上进行右击可能很简单,但是在平板电脑上则非常困难,而在手机上则难以实现。

移动应用的连接问题

便携式设备的本质意味着偶尔连接会中断。您在设计软件时考虑这些情况将可以帮助您的用户实现更出色的体验。以下是您设计移动应用时需考虑的几条建议。

以下是需考虑的一系列问题以及处理这些问题的建议。

问题与建议

连接不可靠

  • 使用订阅方法了解连接状态。当前的大部分操作系统都可提供该功能。
  • 提供联机/脱机智能转换以及数据管理。
  • 为您的应用提供联机和脱机功能。
  • 通过使用存储和转发架构提供“始终连接”的体验,支持无缝转换。
  • 您应用的哪些方面需要连接,有办法缓解吗?
  • 您能延迟通信活动吗?(连接时发送/接收电子邮件)

联机转换到脱机工作负载

  • 开始缓存重新连接时需要同步的信息。
  • 以Facebook* 状态更新为例。缓存这些信息,应用能运行更快。在有新更新时,这将帮助确保应用对于用户的响应性。
  • 您能提前预见到用户需求和缓存吗?
  • 在数据访问或文件传输过程中出现连接故障,您会如何回应?

脱机转换到联机

  • 检测新连接,同步事先准备好的离线时的数据。

联机/脱机转换过程中丢失数据

  • 使用安全的数据传输方法,保持数据的完整性(避免数据报包)。
  • 保留本地缓存,直到确认传输至服务器系统。

服务器或 web 服务无响应

  • 视为连接失败,保留本地缓存并等待有效连接。

同步信息传输

  • 使用异步信息传输,避免潜在阻塞问题。

电源与性能优化

移动设备的特点非常适用于某些工作负载。了解设备的局限性可以帮助您专注工作重点,在最适宜的时间内实现最佳回报。

了解移动用户还可为您的应用设计提供帮助。移动用户希望在实现卓越性能的同时确保电池使用时间更耐久。这不仅仅是一个硬件问题;作为应用开发者,我们必须成为优秀的节能公民。应用至少应该了解电池/电源状态。应用决策会影响平台级别上的功耗。例如,读取文件时,将其全部读取至缓存,可以降低硬盘转速。

规划及处理系统消息。如果出现关机,忽略它将会导致数据丢失。如果屏幕停止运行并显示一条信息,要求用户响应是徒劳的。处理电源电量低的情形。例如,如果您的工作负载是固定的,或者您知道该工作负载会耗费多长时间(比如播放电影),查看电池是否有足够的电量执行该操作,并在用户开始执行该操作前对其发出警告。谁都不希望因为电池电量低导致系统关闭而出现光盘刻录失败的情况。

在考虑电源和性能问题时,需考虑以下几点。

问题与建议

高 CPU 利用率:固定工作负载

  • 优化性能以尽快完成任务,这样 CPU 可以转入较低的电源状态。
  • 首先调优性能,然后调优电池寿命以实现最佳效果。
  • 关闭后台处理程序。

高 CPU 利用率:稳定状态工作负载

  • 优化性能使 CPU 在执行工作负载的过程中以较低频率运行。
  • 性能优化会降低 cpu 的整体利用率,增加电池使用时间。由于缩短了完成工作的时间,cpu 和其它资源将可以进入闲置状态,并快速进入睡眠模式。

繁重的工作负载(比如播放视频)

  • 特效质量 (feature quality) 可以降低吗?考虑采用较低分辨率工作负载来匹配输出设备。
  • 特效质量 (feature quality) 可以降低吗?考虑低分辨率但仍可接受的 FPS。

过度使用硬盘驱动器

  • 通过缓存数据减少磁盘访问,使得驱动器尽早减速并保持更长的非活动时间。
  • 这关系到电源和性能,SSD 在两方面都有帮助。

低效的等待循环

  • 采用订阅方法替代轮询,减少不必要的系统占用。
  • 需避免成本极高的等待循环。

未优化的媒体播放

  • 如果可能,使用硬件媒体加速
  • 请查看硬件具体信息并确定您正在使用的(如H.264 播放)驱动程序是否经过硬件优化。

上面的问题和注意事项列表看似很多了,但是考虑到您应用的特定特性和要求,您可能还会遇到更多的问题。这些准则在所有移动应用开发者的日常工作中都会用到,有助于帮助他们开发出最佳移动应用。

有关编译器优化的更完整信息,请参阅优化通知