模拟与调试

PXA 创作与开发指南

PXADB 命令行教程

连接设备、管理应用、抓取日志和截图,用同一套工具调试桌面与真机。

中文指南 · 4 分钟阅读 · PXA 0.10.0
适用环境与阅读准备

适用环境主机调试

开始前DevKit 已加入 PATH;明确端口、波特率或实例

术语速查 →

在 商城 打开作品 → 安装到设备,也可以直接通过浏览器使用 PXADB 安装。电脑 Chrome / Edge 连接 USB 数据线,设备正常启动 PXA 并开启 PXADB,核对实际设备、版本和存储位置后开始安装;无需安装电脑工具,也不需要重烧固件。独立资源包会一起安装。关闭占用串口的其他工具,避免连接冲突;不支持 Web Serial 时使用下方命令行方式。

PXADB 是主机上的 PXA 调试客户端,通过串口或模拟器服务管理设备。安装 App 不需要重烧固件。DevKit 自带 pxadb,无需另装 Python 依赖。

1. 发现设备与核对连接

先接上 USB 数据线并正常开机,开启设备上的 PXADB 调试。参考系统若隐藏了开关,进入「设置 → 设备信息」,快速点按「系统版本」7 次,再向下找到「开发者 → PXADB 调试」。其他产品的菜单可能不同。BOOT/RESET 进入烧录模式,不会开启应用调试;日常安装应用时保持正常开机。

pxadb devices
pxadb --help

多设备时明确选择端口。以下示例在同一个终端设置自己的设备,UART 波特率必须与固件一致(示例为 2000000,USB Serial/JTAG 忽略此值):

export PXA_PORT=/dev/ttyACM1
export PXADB_BAUD=2000000
pxadb info --port "$PXA_PORT"

预期返回协议能力、平台、Core 与显示信息。pxa device info 调用同一个客户端。只有一个经过验证的端点时可自动选择;调试时明确选择更容易复现。

2. 安装、运行与停止 Hello

先按入门教程生成 hello,并构建匹配设备的目标(pai-touch 使用 esp32s3):

pxa build hello --target esp32s3 --aot-only
pxadb package install hello/dist/pxa-hello.pxa --port "$PXA_PORT" --yes
pxadb package list --port "$PXA_PORT"
pxadb package run pxa-hello --port "$PXA_PORT"

--yes 确认替换已有包;不确定设备状态时先 list,再按提示安装。设备核验签名与清单后提交。若同时存在多个同名 ID,使用列表返回的完整身份。

3. 截图、输入与日志

pxadb screenshot capture.png --port "$PXA_PORT"
pxadb screenshot --jpeg capture.jpg --after-present --port "$PXA_PORT"
pxadb input tap 148 120 --port "$PXA_PORT"
pxadb input swipe 40 120 250 120 --duration-ms 300 --port "$PXA_PORT"
pxadb input key back --port "$PXA_PORT"
pxadb package stop pxa-hello --port "$PXA_PORT"
pxadb logcat --port "$PXA_PORT"

坐标按实际显示尺寸调整;例子针对 296×240。JPEG 需要固件提供 screenshot-jpeg 能力。logcat 持续占用终端和串口,按 Ctrl+C 后再运行其他命令。需要等待最新画面时使用 after-present;截图传输耗时不等于游戏输入延迟。

GUI、monitor、logcat 和设备开发循环不能同时独占同一串口。包卸载与清除数据前看 pxadb package --help,不要误删原有应用。

DevKit 0.10.0 可读取真实 UI 节点,按文字定位控件并验证结果:

pxadb ui inspect --port "$PXA_PORT"
pxadb ui tap --type button --text '+1' --port "$PXA_PORT"
pxadb ui wait-for --type text --text '1' --timeout-ms 5000 --port "$PXA_PORT"

以上适用于计数器配方;其他应用使用实际节点文字。重名、隐藏或禁用的按钮不会被随意点击。旧固件未提供节点检查能力时会明确失败;纯 Surface 游戏需要查看真实截图与操作结果。

4. 调试模拟器中的真实 Guest

终端 A:

pxa run hello --debug --profile pai-touch

该命令打印具体的 --simulator 选择器,例如 pai-touch@pxa-hello-<项目摘要>。终端 B 将实际选择器填入下面变量,不能照抄尖括号,也不要只写 pai-touch:

export PXA_SIM='这里替换为终端 A 打印的完整选择器'
pxadb info --simulator "$PXA_SIM"
pxadb package list --simulator "$PXA_SIM"
pxadb screenshot hello.png --simulator "$PXA_SIM"
pxadb input tap 148 180 --simulator "$PXA_SIM"

点击坐标通过当前截图确认。在项目对应的隔离实例中管理应用,避免连到另一个工作区服务。关闭终端 A 的窗口或按 Ctrl+C 结束运行。下一步可安装可选 GUI。

参考实现与资料pxadb/README.md ↗docs/pxadb2.md ↗

输入关键词,搜索全部教程。