连接设备
本指南涵盖 PhoneBase 中设备的完整生命周期 -- 从创建云手机到连接、控制和多设备管理。
设备生命周期概览
PhoneBase 云手机经历以下阶段:
创建 → 启动 → 连接 → 操作 → 断开 → 停止 / 删除
↑ ↓
└───── 重启 (reboot) ───────┘| 阶段 | 命令 | 说明 |
|---|---|---|
| 创建 | pb devices create | 分配一台新的云手机 |
| 启动 | pb devices start | 启动已停止的设备 |
| 连接 | pb connect <code> | 建立实时控制连接 |
| 操作 | pb tap、pb text 等 | 向设备发送命令 |
| 断开 | pb disconnect | 断开与设备的连接 |
| 停止 | pb devices stop | 关闭设备(保留状态) |
| 删除 | pb devices delete | 永久删除设备 |
TIP
只有设备处于运行中(已启动)状态时才会计费。已停止和已断开连接的设备不产生费用,但请注意:运行中的设备即使没有连接也会继续计费。
创建设备
分配一台新的 Android 云手机:
pb devices create人类可读输出:
✓ 设备已创建
device_code IDY291LX6WW6RCW
status startingJSON 输出(非 TTY / AI Agent):
{
"code": 0,
"msg": "设备已创建",
"data": {
"device": {
"id": "dev_01jk...",
"device_code": "IDY291LX6WW6RCW",
"status": "starting"
}
}
}设备初始状态为 starting,大约 15 秒内转为 running。
列出设备
查看你的所有设备:
pb devices list也可以使用简写形式:
pb devices两者输出相同:
CODE STATUS ONLINE CONNECTED STARTED_AT
IDY291LX6WW6RCW running yes yes 2026-04-09T10:30:00Z
K8X3M2P7QRST stopped no - -字段说明
| 字段 | 说明 |
|---|---|
CODE | 设备编码,用于在命令中标识设备 |
STATUS | 设备状态:starting(启动中)、running(运行中)、stopped(已停止)、deleting(删除中) |
ONLINE | 设备代理是否可达 |
CONNECTED | 你的 CLI 当前是否已连接到该设备 |
STARTED_AT | 设备最后一次启动的时间戳 |
启动 / 停止设备
启动
启动一台已停止的设备:
pb devices start IDY291LX6WW6RCW{
"code": 0,
"msg": "设备 IDY291LX6WW6RCW: start",
"data": { "task_id": "task_abc123" }
}INFO
启动操作是异步的。设备状态从 stopped 变为 starting 再变为 running,通常需要约 15 秒。
停止
关闭一台运行中的设备:
pb devices stop IDY291LX6WW6RCW{
"code": 0,
"msg": "设备 IDY291LX6WW6RCW: stop",
"data": { "task_id": "task_def456" }
}WARNING
停止设备会断开所有活跃的连接。请确保在停止前完成你的操作。
如果省略设备 ID,命令会使用当前已连接的设备:
pb devices stop连接设备
连接到云手机以实时控制设备:
pb connect IDY291LX6WW6RCW✓ 已连接设备 IDY291LX6WW6RCW连接原理
- CLI 自动启动一个后台进程(如果尚未运行)
- 后台进程向 PhoneBase 云端建立持久连接
- 后续所有
pb命令通过此连接路由到设备 - 连接在后台持续存在 -- 你可以关闭终端,之后重新使用
- 如果连接断开,会自动重连
TIP
连接后不需要保持终端打开。连接在后台保持。在任何终端会话中执行新的 pb 命令都会使用已有的连接。
断开连接
断开与设备的连接:
# 断开指定设备
pb disconnect IDY291LX6WW6RCW
# 断开所有设备
pb disconnect✓ 已断开连接INFO
断开连接不会停止设备。设备会继续运行(计费也会继续)。要停止计费,请使用 pb devices stop。
设备详情
查看指定设备的详细信息:
pb devices info IDY291LX6WW6RCWJSON 输出:
{
"code": 0,
"data": {
"id": "dev_01jk...",
"device_code": "IDY291LX6WW6RCW",
"status": "running",
"plex_status": "running",
"is_online": true,
"started_at": "2026-04-09T10:30:00Z",
"created_at": "2026-04-09T10:29:45Z",
"instance_id": "inst_xyz789"
}
}查看任务历史
检查设备的异步任务历史(启动、停止、重启等):
pb devices tasks IDY291LX6WW6RCW多设备管理
指定目标设备
当连接了多台设备时,使用 -s 全局标志指定命令要操作的设备:
# 对指定设备截图
pb -s IDY291LX6WW6RCW screencap
# 对指定设备点击
pb -s K8X3M2P7QRST tap 540 960设置默认设备
避免每次都输入设备编码:
pb config set device_default IDY291LX6WW6RCW此后不带 -s 的命令会自动使用此设备。
自动解析规则
如果省略了设备标识:
- CLI 首先检查是否提供了
-s参数 - 然后检查
device_default配置项 - 然后使用当前已连接的设备(如果恰好只连接了一台)
- 如果以上都无法解析,命令会报错退出
设备控制操作
重启
重启运行中的设备(Android 系统软重启):
# 通过 devices 子命令
pb devices reboot IDY291LX6WW6RCW
# 或使用简写形式(使用已连接/默认设备)
pb reboot{
"code": 0,
"msg": "设备 IDY291LX6WW6RCW: reboot",
"data": { "task_id": "task_ghi789" }
}工厂重置
将设备重置为初始状态:
pb devices reset IDY291LX6WW6RCWDANGER
工厂重置会永久清除设备上的所有数据 -- 已安装的应用、应用数据、文件等全部清空。此操作不可撤销。请在重置前使用快照保存你的状态。
从快照恢复
将设备恢复到之前保存的快照状态:
pb devices restore IDY291LX6WW6RCW --snapshot snap_abc123{
"code": 0,
"msg": "设备 IDY291LX6WW6RCW 已恢复",
"data": { "task_id": "task_jkl012" }
}快照管理
你可以创建、列出和删除快照:
# 将当前设备状态保存为快照
pb snapshots create IDY291LX6WW6RCW --name "setup-complete"
# 列出所有快照
pb snapshots list
# 删除快照
pb snapshots delete snap_abc123删除设备
永久删除一台设备:
pb devices delete IDY291LX6WW6RCWDANGER
此操作不可逆。设备及其所有数据将被永久删除。如需保留状态,请先创建快照。
设备模式
PhoneBase 支持三种设备模式,各适用于不同的使用场景:
无状态模式(Stateless)
每个任务在全新设备上运行。执行完毕后设备即销毁,运行之间不会有状态泄漏。
任务 → [ 全新设备 ] → 结果 → 销毁适用于: 一次性任务、测试、CI/CD 流水线、需要保证干净环境的任务。
快照模式(Snapshot)
预先配置好手机 -- 安装应用、登录账号、设置偏好 -- 然后拍摄快照。每次会话从该快照克隆,用完即弃。
快照 ──→ 克隆 → 执行 → 丢弃适用于: 需要特定初始化配置的重复性任务(如预装并登录好的应用)、批量处理、需要相同起始状态的并行执行。
持久模式(Persistent)
一台专属的常驻设备。会话之间的状态完整保留。运行期间按小时计费。
设备 ──→ 会话₁ → 会话₂ → 会话₃ ···适用于: 长期运行的 Agent、需要随时间积累状态的任务、开发和调试。
浏览器实时查看
在默认浏览器中打开设备的实时画面:
pb view IDY291LX6WW6RCW✓ 已打开: IDY291LX6WW6RCW这会在浏览器中打开一个标签页,显示设备屏幕的实时视频流。用于监控设备正在做什么。
故障排除
设备显示 "offline"
设备代理可能不可达。尝试:
- 检查设备状态:
pb devices info <code> - 如果状态是
running但is_online为false,尝试重启:pb devices reboot <code> - 如果设备是
stopped,启动它:pb devices start <code>
连接超时
如果 pb connect 一直等待或超时:
- 确认设备正在运行且在线:
pb devices list - 检查你的网络连接
- 如果使用 VPN 或代理,确保连接不被阻断
- 尝试断开后重连:bash
pb disconnect pb connect <code>
连接断开
如果看到 "no active connection" 错误:
- 后台进程可能已停止。重新连接:bash
pb connect <code> - 后台进程会在执行
pb connect时自动重启
命令返回 "no device specified"
CLI 无法确定要操作哪台设备:
- 连接一台设备:
pb connect <code> - 或用
-s指定设备:pb -s <code> <command> - 或设置默认设备:
pb config set device_default <code>