常见安卓手表系统之区别
OPPO 手表
OPPO Watch 基于标准 AOSP 和 OPPO Wear Engine SDK 在设备间传输数据并获取设备信息和状态。上述功能只有在 OPPO Watch 上才能正常工作。
华为手表
Harmony OS 整合 AOSP 和 Open Harmony 组件,并基于 HMS Core 服务,使得设备可以正常使用 Open Harmony 应用。部分 AOSP 功能已被删除,请见下文。
Harmony OS 全智能设备可以通过 Open Harmony 提供的全套独占解决方案打造基于 HAP 的 Open Harmony 应用,以在 Open Harmony 和 Harmony OS 设备上都良好运行,通过使用 HMS Core 服务提供的 HUAWEI Wear Engine SDK 在设备间传输数据并获取设备信息和状态。上述功能只有在华为手表上正常工作。
WearOS 工具箱暂不支持处理基于 HAP 的应用。
Wear OS 手表
Wear OS 基于 AOSP 和 Google Play 服务。AOSP 包含了一些专门为 Wear OS 设计的代码和组件,因此在大部分 Android 手机上均可以享受到独有的连接特性和优化。
所有 Wear OS 手表都使用 Google Play 服务。手表主要使用 Play 服务和穿戴式设备数据层 API (Wearable DataLayer) 通过蓝牙传输数据,或者在支持的手表上通过 Google 云端同步 (Cloud Sync) 在任何网络情况下远程连接到手机。上述功能只有在 Wear OS 上正常使用。
Wear OS 包括一部分专有组件和通用组件。Tile API (功能块)、Health Service SDK (健康服务) 等组件只能在 Wear OS 设备上使用,而 Jetpack Compose for Wear 的一部分组件,允许开发者在任何 AOSP 设备上正常运行。
如果您在为 Wear OS 2 编写应用,请不要再将手表应用嵌入手机应用并命名为 wear_micro.apk
,现在已经失去意义。如果您在 Play 商店上发布手表应用,可以直接分别上传手机端或手表端应用,或作为 Standalone Wear OS
独立应用在 Play 商店上架。
和手机应用的区别
使用 Harmony OS 和 Wear OS 的手表可以使用许多标准的 Android API,但不支持以下 API:
android.webkit
您不能使用内建浏览器,包括WebView
方法。要使用浏览器,您应当使用androidx.browser
方法在安装了浏览器的手表上将 URL 传入外部浏览器。android.print
您不能使用网络打印。android.app.backup
应用的数据不能备份。您应该使用手机配对应用完成数据的传输。您甚至可以将手机端的全部应用数据直接复制到手表端。android.appwidget
不论是什么手表,启动器都不应该使用小组件等适用于手机等设备的功能。也不应该直接使用适用于手机的启动器。在 Wear OS 上,可以使用 Tile API 创建功能块。android.hardware.usb
在手表上访问 USB 外围设备没有意义。
在使用某个 API 之前,您可以通过调用 hasSystemFeature()
来检查设备是否支持某项功能,所有 Android 设备都可以正常使用此方式进行检测,或者使用反射机制。
结语
了解上述三个主要手表系统以后,您基本上可以总结归纳出其区别。
如果您是开发者,按照要求编写同时在三个手表系统上正常运行的应用程序,而不需要根据手表的系统生成不同的应用,即 Flavor
,是完全可行的。要这样做,您还需要在应用内进行判断并使用替代方案,在运行时对类库的有效性进行必要的检查。且在 Android Manifest.xml
上进行适配和 android:required
取舍。