2. 配置Wear OS模拟器与真机调试
创建两种屏幕形态的模拟器
Wear OS 模拟器在 AVD 创建阶段就决定了屏幕形态,后续无法在同一个 AVD 内切换圆形与方形。因此需要分别建立两个 AVD,并在命名上区分,便于在 Android Studio 设备下拉框中快速识别。
在 Device Manager 中新建 Wear OS 设备时,关键选择如下:
- Category 选择 Wear OS,而不是 Phone 或 Tablet。
- Hardware Profile 选择带 Round 后缀的圆形表盘(如 Wear OS Small Round)与带 Square 后缀的方形表盘(如 Wear OS Square)。
- System Image 选择与目标 SDK 匹配的 Wear OS 镜像,API 级别建议与模块的 compileSdk 一致,避免运行时出现 API 缺失。
- AVD Name 建议写成
wear_round_api34与wear_square_api34,把形态和 API 级别都写进名字。
创建完成后,两个 AVD 的 config.ini 中 hw.device.name 会分别指向圆形与方形硬件配置,这是区分形态的根源。启动模拟器后,圆形 AVD 的显示区域是内切圆,方形 AVD 是完整矩形,同一份 APK 在两者上的布局表现会明显不同。
通过 ADB 连接真机
Wear OS 真机调试与手机不同,手表通常没有可用的 USB 数据口,主流做法是通过 Wi-Fi 使用 ADB 无线调试。前提是手表与电脑处于同一局域网,且手表已开启开发者选项与 ADB 调试。
- 在手表上进入设置 → 系统 → 关于,连续点击版本号开启开发者选项。
- 进入开发者选项,打开 ADB 调试 与 通过 WLAN 调试。
- 在手表上查看 IP 地址:设置 → 系统 → 关于 → 状态 → IP 地址,记下形如
192.168.1.42的地址。 - 在电脑终端执行连接与确认:
# 连接手表(默认调试端口 5555)
adb connect 192.168.1.42:5555
# 确认设备已进入列表,状态应为 device
adb devices
# 查看手表 API 级别,确认与 APK 的 minSdk 兼容
adb shell getprop ro.build.version.sdk
# 查看屏幕形态,圆形设备通常返回 true
adb shell getprop ro.sf.round_screen
adb devices 输出中若状态为 offline,通常是手表端未确认调试授权或网络不通;状态为 unauthorized 时需要在手表屏幕上点击允许调试。连接成功后,Android Studio 的设备下拉框会同时出现模拟器与真机,可直接选择目标设备运行。
无线 ADB 连接在手表重启或切换 Wi-Fi 后会失效,需要重新执行
adb connect。若端口被占用或连接异常,可先 adb disconnect 192.168.1.42:5555 再重连。安装与启动验证
验证的核心是确认同一 APK 能在圆形与方形两种形态下都完成安装并正常启动。使用命令行可以更清晰地观察每一步结果:
# 指定目标设备安装(-r 覆盖安装,-t 允许测试包)
adb -s 192.168.1.42:5555 install -r app/build/outputs/apk/debug/app-debug.apk
# 启动主 Activity,确认包名与入口类
adb -s 192.168.1.42:5555 shell am start -n com.example.wear/.MainActivity
# 查看当前前台 Activity,确认应用确实在前台
adb -s 192.168.1.42:5555 shell dumpsys activity activities | grep mResumedActivity
对两个模拟器分别执行同样的安装与启动命令,观察点包括:应用图标是否出现在应用列表、启动后界面是否被圆形边缘裁切、方形设备上是否有明显留白。若圆形设备上出现内容被切掉,说明布局未做圆形适配,这属于下一阶段要解决的问题,但本阶段需要先确认安装与启动链路本身是通的。
常见连接问题与判断依据
| 现象 | 可能原因 | 判断与处理 |
|---|---|---|
adb devices 无设备 | 手表未开启 WLAN 调试或 IP 错误 | 重新查看手表 IP,确认与电脑同网段后重连 |
状态为 unauthorized | 手表端未确认调试授权 | 在手表屏幕点击允许,必要时撤销授权后重连 |
状态为 offline | 连接中断或端口被占用 | 先 adb disconnect 再 adb connect |
安装报 INSTALL_FAILED_OLDER_SDK | APK 的 minSdk 高于设备 API | 用 getprop ro.build.version.sdk 核对并调整 minSdk |
| 启动后立即退出 | 入口 Activity 名称或包名不匹配 | 核对 am start -n 中的包名与类名 |
验证通过的标准:两个模拟器与真机都能在
adb devices 中显示为 device;同一 APK 在三台设备上均安装成功;am start 后 dumpsys activity 显示目标 Activity 处于前台;圆形与方形设备上应用均可正常显示,未出现崩溃或闪退。