应用开发

PXA 创作与开发指南

日常开发与联调流程

组合 apps.toml、watch、Profile、日志与真机部署,形成可复现的开发循环。

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

适用环境App / 工作区

开始前Hello 已创建;持续运行的命令用 Ctrl+C 结束

术语速查 →

先完成Hello 教程。下面命令分别执行,关闭窗口或按 Ctrl+C 停止持续运行的命令,再进行下一步。

日常循环

只改界面或逻辑时,保持一个 watch 运行即可,不必每次手动执行 build、run、再启动调试器。需要 PXADB 截图和输入时从一开始就启用 debug,避免从 Release 切到 Debug 后再完整编译一次:

pxa run hello --debug --watch
pxa run hello --device /dev/ttyACM1 --baud 2000000 --watch

编辑源文件、资源或项目配置后,工具重新构建。失败时保留上一次可运行应用;无内容变化时跳过安装。CMake 和 Ninja 负责真实依赖和增量编译,watch 只负责触发,不是新的构建系统。

当前模拟器 watch 会在新包验证成功后重启模拟器进程;它不保存 Guest 的内存状态。需要保留游戏进度时使用应用存档,不应把 watch 当作热状态迁移。

已配置 AI 工具的工作区使用 .pxa/pxa run apps/hello --watch,它会自动建立调试连接;真机使用 .pxa/pxa install apps/hello --port <实际串口>,不把裸 SDK 的 run --device 直接照搬到 Agent Kit。

先快速迭代,再完整验收

迭代时先验证当前屏幕的一组主要操作;布局稳定后再检查圆屏、竖屏和高 DPI。最后构建需要交付的芯片目标,不必每次改文案都编译所有 AOT:

pxa build hello --target esp32s3,esp32s31,simulator --offline
pxa publish hello/dist/pxa-hello.pxa --check-only

保留项目 .pxa/ 增量缓存和 pxa.lock。删除缓存会重新配置、编译和签名;修改源码无需重新运行环境 setup。AI 工具的单屏验证与可重放交互步骤见工具参考;交付前覆盖要求的布局,检查每张截图。

执行目标与屏幕预览

pxa run hello --profile pai-touch
pxa run hello --profile sensecap-watcher
pxa run hello --profile esp32s31-korvo-1

相同桌面 AOT 可以预览多种屏幕。桌面运行时间不能直接解释为 MCU 帧率。帧率、触摸和音频延迟必须在实际设备上按同一场景测量。

调试设备

pxa device info --port /dev/ttyACM1 --baud 2000000
pxa device package list --port /dev/ttyACM1 --baud 2000000
pxa device info --help

所有低层设备操作复用 PXADB。端口与目标不绑定:换设备后先查询 INFO。固件升级、分区或系统移植属于 板级调试,不会由 App 构建隐式执行。

项目文件

提交 main.cpp、CMakeLists.txt、package.json 和 pxa.lock。生成物留在项目 .pxa 与 dist;SDK 可以只读共享。升级工具后不会自动重写已有锁,避免开发者机器各自跟随 latest。

开发包通过检查后再安装真机,确认交互、存档、后台切换和资源释放,最后上传已验证的那份包。

参考实现与资料tools/dev.py ↗tools/simulator.sh ↗pxa/package_app.sh ↗

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