应用开发

PXA DEVELOPER GUIDE

第一个 PXA 应用

从官方 Hello 示例开始,完成修改、构建、运行和设备安装。

中文指南 · 4 分钟阅读 · 开发版

1. 复制可运行示例

先完成环境准备。复制完整示例,保留本地化资源:

mkdir -p local/my-apps
cp -R deps/pxa-system/apps/pxa/hello local/my-apps/hello

示例目录包含 main.c、package.json 与 i18n/。CLI 的 hello 是源码目录名;示例 manifest 中的应用身份是 pxa-hello。安装后启动使用应用身份。

2. 认识清单

{
  "format": "pxa-package-source-0.1",
  "min_sdk": [0, 1],
  "target_sdk": [0, 1],
  "compile_sdk": [0, 1],
  "id": "pxa-hello",
  "version": "0.1.0",
  "name": "Hello PXA",
  "description": "My first PXA application",
  "services": ["ui"]
}

保留示例的 SDK 声明与 UI 服务,先修改 description,再修改 i18n/ 中的标题和正文。pxa_app_messages.h 由本地化构建流程生成,不需要手写。

3. 登记源码,简化后续命令

运行 realpath local/my-apps 得到实际绝对路径,在 local/apps.toml 中加入以下配置;已有文件保留其他条目。将示例路径替换为你自己的路径,不要把 $PWD 当作 TOML 自动变量:

[apps.hello]
source_root = "/home/me/pxa-workspace/local/my-apps"

这里填写 hello/ 的父目录。登记名用源码目录名 hello,不是包内 ID pxa-hello。现在即可使用下面的短命令:

tools/dev.sh sim hello --watch
tools/app.sh build hello --target simulator

多应用配置、自动发现、覆盖优先级和路径排查见用 apps.toml 管理应用。本页剩下的命令默认你已经完成登记。

4. 在桌面构建并持续运行

tools/dev.sh sim hello --watch

保存源码后,工具会增量打包、覆盖安装并重新启动应用。观察终端里的构建结果与 Guest 日志。它会重启 App,内存中的临时状态不会保留。

需要分步检查时:

tools/app.sh build hello --target simulator
tools/simulator.sh product --profile pai-touch \
  --package local/app-output/pai-touch/pxa-hello \
  --publisher-key deps/pxa-system/apps/pxa/.dev-signing/publisher-public.der

期望结果:出现 Hello PXA 窗口,显示本地化标题与正文。打包器同时输出包目录、.pxa 和 provenance 文件;provenance 用于追溯构建,不是安装包。

5. 安装到 ESP32-S3

连接已经运行 PXA 固件的 pai-touch 板子,关闭占用串口的监视器或 GUI:

tools/app.sh build hello --board pai-touch --target esp32s3
pxadb package install local/app-output/pai-touch/pxa-hello.pxa --port /dev/ttyACM0
pxadb package list --port /dev/ttyACM0
pxadb package run pxa-hello --port /dev/ttyACM0

如果设备策略不信任示例开发发布者,安装会被拒绝;使用该产品允许的开发签名配置或自己的发布流程,不要关闭验签。模拟器包不能代替匹配芯片的 AOT 包。

6. 进入自己的应用

将示例复制为新的源码目录,再修改 manifest 的 id、名称和版本。保持已发布应用的 ID 与发布者身份不变。下一步学习生命周期和 UI,并在公开分发前阅读签名与打包。

也可以暂不登记 catalog,继续为单次命令显式传入 --source-root local/my-apps。想换圆屏或竖屏验证,参阅 Profile 与多设备模拟;日志、watch 和真机联调见日常开发与联调流程。

更多可运行应用与真实项目结构,见开源应用仓库 pxa-apps,包括商城、天气、街机游戏、诊断工具与 GameRender 示例。

参考实现与资料hello/main.c ↗hello/package.json ↗tools/dev.sh ↗

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