Wear OS 基于 Android 系统,因此许多 Android 的最佳实践也适用于 Wear OS。不过,由于 Wear OS 是专为腕戴设备优化的,两者之间也存在一些差异。
为了优化开发时间,请在开始构建 Wear OS 应用之前先回顾以下原则。
针对关键任务进行设计
如果您已经拥有移动端应用,请勿直接迁移整个代码库。相反,应找出最适合在手表上完成的核心任务,并精简该流程。一款成功的穿戴式设备应用能够提供有意义且一目了然的体验,帮助用户在移动时保持专注并提高效率。
针对腕戴体验进行优化
帮助用户在几秒钟内完成手表上的任务,以避免人体工程学方面的不适或手臂疲劳。
请查阅 Wear OS 设计指南,了解更多关于针对腕戴设备进行优化的信息。
尊重用户隐私
在用户授予您的应用访问潜在敏感信息的权限之前,您的应用必须先赢得用户的信任。系统提供了多种方式来帮助用户维护其隐私。
隐私信息中心
从 Wear OS 5 开始,系统支持隐私信息中心。该信息中心为用户提供了一个集中视图,用于查看每个应用的数据使用情况,其中包括以下详细信息:
- 正在访问的数据类型(例如:位置信息和麦克风)。
- 这些数据类型最近一次被访问的时间。
通过访问这些信息,用户可以更明智地决定哪些应用仍应具有访问其个人数据的权限。为了维护用户信任,请负责任地使用数据,并在收集和使用用户数据时保持透明。
屏幕截图检测
在运行 Wear OS 5 或更高版本的设备上,应用可以使用一种保护隐私的屏幕截图检测 API。
为任务使用合适的界面(Surface)
Wear OS 比移动端拥有更多的界面(Surface)来吸引用户。应用应针对这些界面量身定制内容。
每个界面都有其特定的用例。如果需要更多操作,请引导用户进入更完整的应用体验。
阅读并理解您的内容如何根据用户需求在各个界面上进行缩放。下表提供了天气应用的优先级示例。
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| 复杂功能 (Complication) P1:现在天气如何? |
通知 P1:告诉我恶劣天气预警。 |
微件 (Tile) P1:现在天气如何? P2:今天天气如何? |
应用 P1:现在天气如何? P2:今天天气如何? P3:每小时的天气预报是怎样的? P3:偏好设置。 |
欲了解更多信息,请阅读用户界面指南。
将通知添加到其他界面
在 Wear OS API 30 及更高级别中,请将任何正在进行的通知与 OngoingActivity 配对,以将该通知添加到 Wear OS 用户界面中的其他位置。这可以提高用户对长时间运行任务的参与度。
支持离线场景
虽然 Wear OS 设备通常支持蓝牙和 Wi-Fi,但可能不支持 LTE。请为连接不稳定和离线使用场景进行设计,例如运动和通勤时,用户可能不会随身携带移动设备。
提供相关内容
手表几乎总是佩戴在用户身上。请根据用户的环境(例如时间、地点和活动)及时更新您的应用内容。
帮助用户在另一台设备上完成任务
人们拥有的设备越来越多。手表可以帮助用户在分布式设备生态系统中完成任务。请评估在哪些情况下这对您的应用是有意义的。
改善应用冷启动期间的用户体验
为了改善应用冷启动时的用户体验,请创建一个具有独立主题的启动 Activity。然后,在清单文件中将其 windowBackground 设置为您自定义的启动页可绘制对象。启动画面由一个包含两个元素的 layer-list 组成:背景颜色和自定义的可绘制对象(通常是您的应用图标)。请使用 48x48 dp 的可绘制对象。
有关详细信息,请参阅添加启动画面。
媒体应用的注意事项
启用手机音乐播放控制
如果您的应用同时安装在手机和手表上,用户会期望从手表进行远程控制。例如,用户希望能够从手表暂停、播放或跳过歌曲。
下载内容
如前所述,支持离线场景非常重要。这对媒体应用尤为关键。对于媒体应用,建议先支持离线下载,如果后续有需求再添加流媒体功能。
在设计时,请向用户明确哪些内容可供离线使用。对于任何长时间运行的即时或周期性任务,请使用 WorkManager。建议将下载推迟到手表正在充电且连接到 Wi-Fi 时进行。
在 LTE 上进行流媒体播放
考虑在具备 LTE 连接的设备上提供流媒体支持,这是媒体播放的一个常见用例。流媒体可以让用户将其他设备留在家中,依然能够听音乐。在用户播放流媒体音乐时,请在视觉上告知用户,并缓存流媒体音频。避免在可能延迟的任务中使用 LTE(例如发送日志和分析数据),以在流媒体播放时优化功耗。
支持蓝牙耳机
用户在跑步或散步时可能只带手表和耳机。通过支持与耳机配对,让他们获得真正的独立体验。如果播放或恢复音乐时未连接耳机,请启动蓝牙设置,让用户直接从应用连接其蓝牙耳机。
指示音乐来源
清楚地指示声音是来自手表还是手机。使用来源图标来指示音乐的播放位置。将默认来源设置为用户启动音乐的地方。
使用扬声器
部分 Wear OS 设备内置了扬声器,您可以使用它来处理提醒和闹钟等事务。请避免使用内置扬声器播放媒体和音乐,因为用户预期这些体验是与耳机挂钩的。有关详细信息,请参阅检测音频设备。
健身应用的注意事项
在为 Android 10(API 级别 29)及更高版本创建健身应用时,请请求身体活动识别权限。
补充移动端应用
如前所述,Wear OS 健身应用应仅处理腕戴设备的关键任务。这意味着 Wear OS 健身应用主要侧重于数据采集。
虽然您可以包含一些锻炼后的摘要屏幕,但请将详细的锻炼后分析以及任何需要更多屏幕空间的功能留在移动端应用中。
支持长时间运行的活动
与许多订阅位置和传感器数据的应用一样,请将您的应用设计为支持使用中 (while-in-use) 运行。这意味着您的应用在后台运行时应在服务中运行,并在前台运行时保持活动状态。
如果锻炼在某个 Activity 中开始,请将该 Activity 绑定到执行任务的服务。当用户离开您的应用时,该服务将解绑并可以将其自身提升为“正在进行的通知”。
在 Wear OS 中,您可以使用正在进行的活动 API (Ongoing Activity API),通过极少量代码将“正在进行的通知”公开到新界面中。
查看 GitHub 上的 Ongoing Activity 代码实验室,了解采用此架构的简化应用示例。
节制使用“始终开启”模式
如果用户在使用您的应用期间停止操作手表,设备将进入系统环境模式(ambient mode)以节省电量。
如果用户在指定时间内再次与设备交互,Wear OS 会将应用恢复到活动状态。
对于大多数用例,这足以让用户获得良好的体验并节省电池电量。
在某些情况下,您可能需要应用保持更长时间的可见性(例如在整个锻炼过程中)。针对这些情况,请使用 AmbientLifecycleObserver。有关详细信息,请参阅保持应用在 Wear 上可见。
不要占用唤醒锁 (Wake Lock)
使用相关 API(例如 Health Services)来获取传感器数据,同时允许 CPU 在数据读取或传输的间隙进入睡眠状态。
优化位置和传感器管理
传感器管理非常重要,如果处理不当,会对电池续航产生负面影响。
在实施传感器策略时,请遵循以下建议:
- 尽可能始终以批处理模式使用传感器。
- 当屏幕或应用再次变为活动状态时,刷新传感器。
- 当屏幕关闭时,更改批处理时长以节省电量。
- 在不再需要传感器时,注销传感器监听器。
- 对于位置传感器,请遵循在 Wear OS 上检测位置中的最佳实践。
为简化传感器管理并优化功耗,请考虑使用 Health Services。
使用触感反馈确认操作
使用触感反馈来确认操作,例如开始、停止、自动暂停或自动计圈。
使用触摸锁定
在某些情况下,禁用触摸体验可以改善应用体验。例如,在追踪锻炼时禁用触摸是非常合理的,因为在这种情况下很容易发生意外触摸。
消息应用的注意事项
从通知开始
支持 MessagingStyle 以改善用户的应用体验。
支持语音输入
支持语音转文字,因为在手表上这要快得多。您可能还需要支持录制的音频。



