Wear OS 以 Android 为基础,因此 Android 的许多最佳实践也适用于 Wear OS。不过,Wear OS 专门针对腕部佩戴进行了优化,因此两者之间存在一些差异。
为了缩短开发时间,请在开始构建 Wear OS 应用之前,查看以下原则。
注意:新的 Wear OS 质量要求将于 2023 年 8 月 31 日生效。如需查看相关要求的完整列表,请参阅 Wear OS 应用质量。
针对关键任务进行设计
重点关注目标用户的一项或两项需求,而不是完整应用体验。不要迁移整个移动代码库,也不要将 Wear OS 界面放在顶层。
相反,您应寻找适合腕部佩戴的关键任务,并简化 Wear OS 的体验。
![image_tooltip 应用示例](https://developer.android.com/static/wear/images/principles_1.png?authuser=3&hl=zh-cn)
针对腕部佩戴进行优化
让用户可在几秒钟内完成手表上的任务,避免人体工学不适或手臂疲劳。
查看 Wear OS 设计指南,详细了解如何针对腕部佩戴进行优化。
![image_tooltip 计时器示例](https://developer.android.com/static/wear/images/principles_4.png?authuser=3&hl=zh-cn)
为任务使用适当的 surface
为了吸引用户,Wear OS 拥有比移动设备更多的 surface。应用应针对这些 surface 定制内容。
每个 surface 都有自己的使用场景。如果需要执行更多操作,请将用户引导至更完整的应用体验。
阅读并了解如何根据用户需求的优先级在各个 surface 上调整您的内容。以下是一个天气应用的优先级示例。
![]() |
![]() |
![]() |
![]() |
复杂功能
P1:现在天气如何? |
通知
P1 告诉我有关恶劣天气的信息 |
卡片
P1:现在天气如何? P2:今天天气如何? |
应用
P1:现在天气如何? P2:今天天气如何? P3:每个小时的天气如何? P3:偏好设置 |
![image_tooltip 天气功能块](https://developer.android.com/static/wear/images/principles_7.png?authuser=3&hl=zh-cn)
如需了解详情,请参阅我们的界面指南。
向其他 surface 添加通知
在 Wear OS API 级别 30 及更高版本中,将任何持续性通知与 OngoingActivity
配对,即可将该通知添加到 Wear OS 界面的其他 surface 中,以增强与长时间运行的 activity 的交互。
支持离线场景
虽然 Wear OS 设备通常支持蓝牙和 Wi-Fi,但可能不支持 LTE。针对不稳定的连接和离线使用场景(例如锻炼和通勤)进行设计,在这些场景中用户可能会将移动设备留在家中。
![image_tooltip 离线示例](https://developer.android.com/static/wear/images/principles_3.png?authuser=3&hl=zh-cn)
提供相关的内容
用户几乎总会佩戴手表。根据用户所处的环境(例如,时间、地点和活动)更新应用内容。
![image_tooltip surface](https://developer.android.com/static/wear/images/principles_6.png?authuser=3&hl=zh-cn)
帮助用户通过其他设备完成任务
越来越多的用户拥有多台设备。手表可以帮助用户在分布式设备生态系统中完成任务。查看适合您的应用的使用场景。
改善应用冷启动期间的用户体验
为了改善应用冷启动期间的用户体验,请使用单独的主题创建启动 activity,并在清单文件中将其 windowBackground
设置为自定义启动可绘制对象。启动画面由层列表组成,层列表中包含两个元素:背景颜色和自定义可绘制对象(通常为应用图标)。
可绘制对象应为 48 x 48dp。
媒体应用的注意事项
启用手机中的音乐播放控件
如果您的应用同时安装在手机和手表上,用户希望能通过手表进行远程控制。例如,用户希望能够通过手表暂停、播放或跳过手机上的歌曲。
已下载的内容
如前所述,支持离线场景非常重要。这对于媒体应用尤为重要。对于媒体应用而言,先支持离线下载,然后根据需要添加在线播放功能,这样会更方便。
在设计时,请向用户明确说明哪些内容可离线使用。对于任何长时间运行的即时或定期任务,请使用 WorkManager。推迟下载,直到手表正在充电并连接到 Wi-Fi。
通过 LTE 在线播放
请考虑在具有 LTE 连接(媒体播放的常见使用场景)的设备上提供在线播放支持。借助在线播放功能,用户将其他设备留在家中时,仍能听音乐。当用户在线播放音乐和缓存在线播放的音频时,确保能够向用户直观地传达这些讯息。避免利用 LTE 执行任何可推迟的作业(例如发送日志记录和分析数据),以便在在线播放时优化耗电量。
支持蓝牙耳机
用户在外出跑步或散步可能会只带着手表和耳机。您可以通过支持与耳机配对,使用户获得真正的独立体验。如果在播放或恢复播放音乐时未连接耳机,请启动蓝牙设置,以便用户直接从应用连接到蓝牙耳机。
指明音乐来源
清楚地指明声音是来自手表还是手机。您可以使用来源图标来指示播放音乐的设备。默认来源应是用户开始播放音乐的设备。
使用扬声器
有些 Wear OS 设备配有内置扬声器,可用于提醒和闹钟等功能。避免使用内置扬声器播放媒体内容和音乐,因为用户希望通过耳机播放这些内容。如需了解详情,请参阅检测音频设备。
健身应用的注意事项
为 Android 10 及更高版本构建健身应用时,需请求身体活动识别权限。
与移动应用互补
如上所述,Wear OS 健身应用应仅处理针对腕部佩戴的关键任务。这意味着,健身 Wear OS 应用主要侧重于数据收集。
虽然您可以设置一些锻炼后的信息摘要屏幕,但应将提供锻炼后详细分析数据以及需要更多屏幕空间的任何其他功能留给移动应用。
支持长期存在的 activity
就像设计许多会跟踪位置信息和传感器数据的应用一样,将应用设计为“在使用期间”处理运行。这意味着,您的应用应在前台运行。
如果锻炼是在 activity 中启动的,请将该 activity 与将执行这项工作的服务绑定。 当用户离开您的应用时,服务会取消绑定,并且可以将自身提升为持续性通知。
在 Wear OS 中,借助 Ongoing Activity API,您只需编写少量代码即可向新的 surface 公开持续性通知。
查看 GitHub 上有关持续性活动的 Codelab,了解采用此架构的简化应用。
谨慎使用始终开启的功能
如果用户在与应用会话期间停止使用手表,设备最终会进入系统氛围模式以节省电量。
如果用户在指定时间内再次与设备互动,Wear OS 会使该应用恢复到活动状态。
对于大多数使用场景来说,这应该足以为用户提供良好的体验并延长电池续航时间。
在某些情况下,您可能需要延长应用的亮屏时间,例如在整个锻炼期间。在此类情况下,您需要使用 AmbientLifecycleObserver
。如需了解详情,请参阅让应用始终显示在 Wear 上。
请勿保持唤醒锁定
请使用 Health Services 等 API 获取传感器数据,同时允许 CPU 在读取或传送数据之间休眠。
优化位置信息和传感器管理
传感器管理非常重要,如果处理不当,可能会对电池续航时间造成负面影响。
在实施传感器策略时,请务必遵循以下建议:
- 请尽可能在批处理模式下使用传感器。
- 在屏幕/应用再次激活时刷新传感器。
- 更改屏幕关闭时的批处理时长以节省电量。
- 取消注册不再需要的传感器监听器。
- 对于位置传感器,请遵循在 Wear OS 上检测位置中记录的最佳实践。
使用触感反馈确认操作
使用触感反馈来确认操作,例如开始、停止、自动暂停或自动计圈。
使用触摸锁定功能
在某些情况下,停用触摸体验可改善应用体验。例如,建议在跟踪锻炼时停用触摸,因为在这种情况下很可能出现意外触摸。
即时通讯应用的注意事项
从通知开始
支持 MessagingStyle
以改善用户的应用体验。
支持语音输入
请务必支持语音转文字,因为在手表上使用语音转文字要比打字效率更高。您可能还需要支持录制的音频。