Wear OS 是一个出色的平台,Android 用户可以在旅途中与各种音频 内容(如有声读物、音乐、播客和电台)互动。借助 Wear OS by Google,您可以编写各种类别的应用(包括 音频内容),帮助用户保持联系、保持健康和表达 自我。
如果您曾为 Android 开发应用,那么您可能熟悉应用和 通知等功能。 在开发适用于 Wear OS 的应用时,您可以运用所掌握的 Modern Android Development 知识。
Wear OS 应用开发原则
Wear OS 以 Android 为基础,因此 Android 的许多最佳实践也适用于 Wear OS。为了缩短开发时间,请在开始构建 Wear OS 应用之前,查看这些 原则。
创建并运行 Wear OS 应用
最好的入门方式是亲自体验 Wear OS 应用!您可以使用 Android Studio 中的模板构建您的首个 Wear OS 应用。该应用会展示在 Wear OS 设备上一目了然地查看信息的不同方法,并会介绍一些在该平台上开发应用的最佳实践。
如需查看分步指南,请参阅 创建并运行 Wear OS 应用。
Wear OS 应用开发与移动应用开发
设计移动应用的方式与设计 Wear OS 应用的方式有所不同。如需了解与 Android 移动应用开发相比,Wear OS 应用开发中的特定功能、API 或最佳实践有何不同,请参阅功能表。
Wear OS 上的媒体应用的常见使用场景
在 Wear OS 上构建媒体应用,让用户能够从手表串流播放和播放下载的内容。为了提供最佳用户体验,请考虑实现以下媒体使用场景,这些场景在 Wear OS 设备上尤其适用。
播放下载的内容
用户可以在锻炼时收听内容,而无需网络连接。虽然 Wear OS 设备通常支持蓝牙和 Wi-Fi,但可能不支持 LTE。针对不稳定的连接和离线使用场景(例如锻炼和通勤)进行设计,在这些场景中用户可能会将移动设备留在家中。如需了解详情,请参阅 使用下载的内容。
通过任何可用网络串流播放
用户可以通过从手表串流播放来收听音乐、播客或电台,但串流播放可能会消耗手表电池电量。当用户选择在手表上听音乐时,应用可在浏览列表中显示最近用过的下载内容,以便用户优先聆听已下载的内容。考虑添加一个按钮,让用户可以转到下载内容的完整列表,如下图所示。
使用 Compose for Wear OS 进行构建
Compose for Wear OS 是 Android Jetpack 的一部分, 就像您使用的其他 Wear Jetpack 库一样,它也可以帮助您更快地编写出更好的 代码。这是 Google 建议您在为 Wear OS 应用构建界面时使用的方法。
Jetpack Compose for Mobile 的许多开发原则都适用于 Compose for Wear OS。不过,二者间也有一些重要的区别。在使用 Compose for Wear OS 进行构建时,请务必设计让用户能在手表上方便快捷地访问媒体内容的应用。手表是一个独特的界面,用户与手表的互动时间远少于与手机或平板电脑的互动时间,因此,互动便捷性和速度是手表的首要考虑因素。
如需详细了解声明式界面框架的一般优势, 请参阅 为什么采用 Compose。如果您不熟悉如何使用 Jetpack Compose 工具包,请参阅 Compose 开发者在线课程。 如需详细了解 Compose for Wear OS,请参阅 Compose for Wear OS 开发者在线课程和 GitHub 上的 Wear OS 示例 仓库 。
Wear OS 媒体工具包
Wear OS 媒体工具包是一组库,可加快为 Wear OS 开发高品质媒体应用的速度。该工具包是 Horologist项目的一部分。 Horologist 是一个额外的库,可帮助您加快应用开发速度。
该工具包针对媒体使用场景使用一流的库,从使用 Compose for Wear OS 实现的界面到使用 Media3 实现的播放功能。如果您的应用有特定要求,您可以采用工具包中的界面实现,同时仍依赖于现有播放器。
媒体工具包可以帮助您解决一些难题,例如避免在手表的内置扬声器上播放媒体、启用 音频卸载,以及避免不必要地 ping 网络。
设计媒体应用提供了您使用 Horologist 实现的 指南,以及有关 Wear OS 的 架构和使用场景的信息。
针对 Wear OS 特有难题的最佳实践
在 Wear OS 上创建媒体应用时,请考虑手表上的用户体验与移动设备上的用户体验有何不同,尤其是在以下方面:
- 内置扬声器并非专为音乐播放而设计。因此,请使用蓝牙扬声器或耳机。
- 网络连接受限或不稳定,因此您应针对各种网络条件优化应用,并尽可能减少网络使用。
- 较小的电池电量有限。当设备在主 CPU 上执行音频处理以及设备 LTE 信号较差时,电池消耗速度会更快。添加对音频卸载的支持,以帮助节省电量。
- 设备提供多个界面,让用户可以重新与您的应用互动。在这些界面上展示应用的功能。
使用蓝牙扬声器或耳机
虽然手表扬声器可用于通话和引导式活动,但它们无法提供最佳的媒体内容收听体验。
为了提供最佳用户体验,您的应用可以使用 媒体工具包 来确保在有蓝牙耳机或扬声器连接到 手表时播放音频。
媒体工具包提供了一个特定的 Media3 扩展程序 ,用于修饰 ExoPlayer 实例,并在发出声音之前 主动停止意外播放。
针对网络条件进行优化
为了让媒体应用在手表上顺畅运行,您需要针对以下串流播放注意事项和网络条件做出选择:
- 通过选择低比特率(例如 48 kbps)和编解码器(例如 AAC 和 MP3)来优化内容。
- 优化图片和音轨的预提取策略,以便在暂时断开连接时继续播放。
- 在所有网络配置中测试应用:Wi-Fi、LTE,以及使用蓝牙连接到手机的手表。还要测试手表在网络之间切换时会发生什么情况。
Wear OS 媒体工具包有助于构建高性能应用的基础, 例如提供网络 感知 模块,以便为特定操作选择更好的连接。
启用音频卸载
为了提高 Wear OS 上应用的性能并减少耗电量,请使用
音频
卸载。这样可以将音频处理从 CPU 卸载到专用信号处理器。媒体工具包通过
AudioOffloadManager提供支持
如果您不确定给定的音频格式是否支持音频卸载,
请使用 AudioManager.isOffloadedPlaybackSupported() 方法。如需了解详情,请参阅
Exoplayer
文档。
避免网络连接,除非绝对必要
在为 Wear OS 开发应用时,您可以预计用户网络连接有限。通过使用 MediaDownloadService, 您可以让用户获得可靠、高性能的下载,以便他们随时随地播放 媒体。
该工具包可让您通过使用 Media3 的 DownloadManager 和 AndroidX WorkManager 来安排 下载,从而更高效地优化媒体下载。
Media3 会启动所有必要的通知和前台服务。示例应用代码将 WorkManager 配置为在 Wi-Fi 连接可用时运行下载,以提供更好的性能。使用网络感知 模块可让开发者将网络操作与网络类型相关联。
让用户了解正在进行的媒体播放
在 Wear OS 3 及更高版本中,持续性通知可以显示在 Wear OS 界面内的多个界面上。点按持续性活动 通知后,应用会打开播放器界面。
借助 Media3,Wear OS 会自动为媒体应用创建 持续性活动 ,并提供用于打开应用的 intent。这样,用户就可以与长时间进行的活动(例如媒体播放)保持更高的 互动度。