确保您的应用提供一个交互式 UI,该 UI 可以快速响应用户输入,并在必要时弥补缓慢的启动速度。确保您的应用设计易于本地化,以适应不同语言之间的差异:允许空格、密度、顺序、强调和措辞的变化。还要确保日期、时间和其他单位已国际化,并根据手机的设置显示。
快速响应的用户界面
用户对应用性能的感知很大程度上取决于应用的响应速度。例如,与用户的交互和清晰的显示是高性能应用的两个重要特征。在这里,您可以找到有关如何优化这些方面以及应用速度和响应速度的其他方面的提示。
所有可触摸项目上的触控反馈
- 触控反馈为用户界面增加了触觉感受。您应确保您的应用在所有可触摸元素上提供触控反馈,以尽可能减少感知到的应用延迟。
- 响应式交互 通过为用户输入创建及时、逻辑和愉悦的屏幕反应,鼓励更深入地探索应用。响应式交互将应用从信息传递服务提升到使用多种视觉和触觉响应进行通信的体验。
- 有关更多信息,请参阅 Android 培训课程中的 自定义触控反馈。
UI 应始终具有交互性
- 在执行后台活动时无响应的应用会感觉缓慢,并降低用户满意度。确保您的应用始终具有响应式 UI,而不管任何后台活动如何。通过在后台线程中执行网络操作或任何繁重的操作来实现此目的 - 保持 UI 线程尽可能空闲。
- Material Design 应用在加载内容时使用最少的视觉变化,方法是用单个活动指示器表示每个操作。避免使用 加载指示器 阻塞对话框。
- 空状态 发生在视图没有内容要显示时。它可能是一个没有项目的列表或一个没有结果的搜索。使用启动、教育或最佳匹配内容避免空状态。当这些选项不适用时,显示一个非交互式图像和一个文本标语,告诉用户在有内容要显示时将看到什么。
- 有关更多信息,请参阅 Android 培训课程中的 保持应用响应。
在低成本设备上以每秒 60 帧的目标运行
- 确保您的应用始终快速流畅地运行,即使在低成本设备上也是如此。
- 过度绘制会显着降低应用速度 - 发生在像素在每次传递中被绘制多次时。一个例子是当您有一个图像,上面放置了一个按钮。虽然一些过度绘制是不可避免的,但应将其降到最低以确保平滑的帧率。对您的应用执行 调试 GPU 过度绘制 以确保将其降到最低。
- Android 设备以每秒 60 帧 (fps) 的速度刷新屏幕,这意味着您的应用必须在大约 16 毫秒内更新屏幕。使用设备上的工具 分析您的应用 以查看您的应用是否以及何时未达到此 16 毫秒平均值。
- 在低成本设备上减少或移除动画,以减轻设备的 CPU 和 GPU 负担。有关更多信息,请参阅 改进布局性能。
- 有效的视图层次结构可以加快应用速度,而不会增加应用的内存占用。有关更多信息,请参阅 性能和视图层次结构。
在启动缓慢的应用中使用启动屏幕
- 启动屏幕是用户对您的应用的第一印象。在启动应用时显示空白画布会增加其加载时间的感知,因此请考虑使用占位符 UI 或品牌启动屏幕以减少感知到的加载时间。
- 对于应用启动和应用内活动转换,占位符 UI 是最无缝的启动转换。
- 品牌启动屏幕 提供短暂的品牌曝光,从而释放 UI 以专注于内容。
- 处理启动速度缓慢的最佳方法是避免出现这种情况。 启动时间性能 提供可能帮助您加快应用启动时间的信息。
用户界面最佳实践
- Material Design 是一种视觉语言,它将优秀设计的经典原则与技术和科学的创新和可能性相结合。Material Design 提供了一个单一的底层系统,允许跨平台和设备尺寸提供统一的体验。考虑使用关键的 Material Design 组件,以便用户直观地了解如何使用您的应用。
- 可在 Material Design 支持库 中找到现成的 Material Design 组件。这些组件在 Android 2.1(API 级别 7)及更高版本中受支持。
本地化
- 您的用户可能来自世界各地,他们的母语可能不是您的母语。如果您没有以用户能够阅读的语言呈现您的应用,那将是一个错失的机会。因此,您应该针对主要区域语言对您的应用进行本地化。
- 要了解更多信息,请访问 Android 培训课程 支持不同语言,并查看 本地化清单。
- 从 Android 7.0(API 级别 24)开始,Android 框架提供了一部分 ICU4J API,这些 API 可以帮助您将应用本地化为多种语言。有关更多信息,请参阅 ICU4J Android 框架 API。
其他资源
要详细了解此主题,请查看以下其他资源