2. Wear OS开发环境搭建

Wear OS 应用本质上仍是 Android 应用,只是运行在手表这一特殊形态的设备上。因此开发环境的主体是 Android Studio,但真正决定开发效率的,是三个环节是否打通:SDK 与工具链配置是否正确、模拟器或真机是否能稳定连接并部署、项目结构是否理解到位。本节围绕这三件事展开,目标是让你能独立完成一次从新建工程到在手表上看到界面的完整闭环。

一、Android Studio 与 Wear OS 工具链配置

建议使用 Android Studio 的较新稳定版(如 Hedgehog 及以后版本),因为 Wear OS 的 Compose 模板、模拟器镜像和 Gradle 插件版本对 IDE 版本有一定要求。安装完成后,进入 Settings → Languages & Frameworks → Android SDK,需要确认三类组件:

  • SDK Platforms:勾选目标 API 级别,例如 Android 14.0 (API 34),Wear OS 4 及以上通常基于 API 33/34。
  • SDK Tools:必须包含 Android SDK Build-Tools、Android SDK Platform-Tools、Android Emulator、Android SDK Command-line Tools。
  • Wear OS 专用组件:在 SDK Tools 中勾选 Wear OS SDK 与 Google Play services,前者提供手表专属 API,后者用于后续健康数据与消息同步。

配置完成后,在 Settings → Plugins 中确认已启用 Android 与 Kotlin 插件。若使用 Compose 开发 Wear 界面,还需在项目级 build.gradle.kts 中声明 Compose 编译器版本,并保证 Kotlin 版本与 Compose 编译器兼容。一个常见的示例配置如下:

// 项目级 build.gradle.kts(示例)
plugins {
    id("com.android.application") version "8.2.0" apply false
    id("org.jetbrains.kotlin.android") version "1.9.20" apply false
}

// 模块级 build.gradle.kts(示例)
android {
    namespace = "com.example.wearhealth"
    compileSdk = 34
    defaultConfig {
        applicationId = "com.example.wearhealth"
        minSdk = 30
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"
    }
    buildFeatures { compose = true }
    composeOptions { kotlinCompilerExtensionVersion = "1.5.4" }
}

这里的 minSdk = 30 是 Wear OS 3 的起点,若需覆盖更老设备可下调,但会失去部分新 API。配置完成后执行一次 Sync Now,若 Gradle 同步无报错,说明工具链基本可用。

二、Wear OS 模拟器与真机调试

模拟器是开发阶段最常用的验证手段。打开 Device Manager → Create Device,在设备列表中选择 Wear OS 分类,例如 Wear OS Small Round 或 Wear OS Large Round,系统镜像选择与 compileSdk 匹配的版本。创建时注意两点:一是选择带 Google Play 的镜像,便于后续测试健康服务;二是分配足够内存(建议 2GB 以上),否则 Compose 预览与动画会明显卡顿。

启动模拟器后,可通过 adb devices 确认设备已连接。若要在模拟器上调试心率、步数等传感器数据,可使用模拟器的 Extended Controls → Sensors 面板手动注入数值,例如将心率设为 72 bpm、步数设为 1200,观察应用界面是否实时刷新。这是验证健康数据链路是否打通的最直接方式。

真机调试则需要手表开启开发者模式:进入 设置 → 关于 → 版本号 连续点击 7 次,返回后进入 开发者选项,打开 ADB 调试 与 通过 WLAN 调试。若使用 USB 调试,需搭配手表充电底座;若使用无线调试,则在同一局域网下执行:

adb pair 192.168.1.20:37000   # 输入手表显示的配对码
adb connect 192.168.1.20:5555
adb devices                   # 应看到手表设备序列号

连接成功后,在 Android Studio 的设备下拉框中选中手表,点击 Run 即可部署。若安装失败,优先检查 minSdk 是否高于手表系统版本,以及是否误用了手机专属权限。

Wear OS 开发环境:工具链 → 部署目标 → 项目结构 Android Studio 工具链 SDK Platform:API 34 Build-Tools / Platform-Tools Wear OS SDK + Play services Kotlin 1.9.20 + Compose 1.5.4 部署目标 Wear OS 模拟器 Small/Large Round · API 34 真机(WLAN/USB) adb pair / connect / devices 传感器注入:心率 72 / 步数 1200 项目结构关键目录 src/main/java/…/presentation src/main/res/values/strings.xml AndroidManifest.xml build.gradle.kts(模块级) 构建 运行 调试闭环:从代码到手表界面 编写 Compose UI Scaffold + TimeText Gradle 构建 assembleDebug adb install 部署到手表 界面验证 传感器刷新 判断依据:Logcat 无崩溃 + 界面正常渲染 + 传感器数值随注入变化

三、项目结构解析:Wear 工程与手机工程的差异

用 Android Studio 的 Wear OS 模板新建工程后,目录结构与普通手机工程大体一致,但有几处关键差异需要特别关注。

首先是 AndroidManifest.xml。Wear 应用通常声明 <uses-feature android:name="android.hardware.type.watch" />,以表明只面向手表设备;同时会注册 WearableListenerService 或 DataClient 相关组件,用于与手机端或云端同步健康数据。若后续要接入心率传感器,还需声明 BODY_SENSORS 权限,并在运行时动态申请。

其次是 res 目录。Wear OS 的界面尺寸小、圆形屏幕居多,因此模板会提供 values-round 与 values-notround 两套资源,分别适配圆形与方形表盘。字符串、尺寸和颜色建议按屏幕形态分别定义,避免在圆形屏幕上出现文字被裁切的问题。

第三是 presentation 层。Wear Compose 模板通常把界面拆成 Scaffold、TimeText、Screen 等可组合函数,并配合 ScalingLazyColumn 实现弧形滚动列表。理解这一层的关键是:Wear 的布局不是手机布局的等比缩小,而是围绕圆形视口重新设计的。例如,顶部要预留 TimeText 区域,底部要留出系统手势区,内容区才用于展示健康数据卡片。

最后是 build.gradle.kts 中的 minSdk 与 targetSdk。Wear OS 3 对应 API 30,Wear OS 4 对应 API 33/34。若项目需要调用 Health Services 获取实时心率,通常要求 minSdk ≥ 30,并在依赖中加入 androidx.health:health-services-client。这些配置一旦写错,最常见的现象是编译通过但运行时找不到类,或权限申请直接被系统拒绝。

建议在首次搭建环境后,先运行模板自带的 Hello World 界面,确认模拟器或真机能正常显示,再逐步加入健康数据相关依赖。这样可以把“环境问题”和“业务代码问题”分开定位,减少排障成本。
若 adb devices 看不到手表,先检查手表与电脑是否在同一网段、配对码是否过期;若模拟器启动后黑屏,优先检查是否安装了对应 API 级别的系统镜像,以及是否开启了硬件加速(HAXM 或 Hyper-V)。