二进制示例工程验证记录

← 返回二进制数据专题

二进制示例工程验证记录

验证日期:2026-10-03。本次修复事件参数下拉框内部值,重新生成并复核 6 个最终 AIA;以下结果对应当前下载文件。

最终检查先执行生成链的 10 项回归,全部通过后再验证每个 AIA;报告记录每项退出码、日志和资源指纹,每屏须通过正式编辑器首次加载和保存后重开检查,均为 0 个错误。缺少回归结果的旧记录不能作为新的交付证明。

已完成:

  1. 使用编辑器后台的 FileImporterImpl.importProject 逐个导入 6 个最终 AIA,读取并检查存储后的屏幕、积木与素材;全部导入通过。
  2. 从每个原始 AIA 读取实际 .scm、.bky,载入编辑器同源 Blockly;核对载入块数与归档块数一致,没有静默跳过的块;逐个检查变量下拉框的内部值与作用域选项一致,不能仅按显示文字判断。
  3. 使用实际表单 JSON 生成完整 YAIL,包含组件配置与事件;没有使用预览合成的最小表单代替实际工程。
  4. 将上述完整 YAIL 加入编译包,调用仓库 Android BuildServer,完成类生成、DEX、APK 打包、对齐与签名。6 个构建退出码均为 0,均产出 APK。网络示例见下表,串口示例见后面的单独记录。

尚未验证:浏览器中的人工导入操作、AI 伴侣联机、手机安装运行、真实蓝牙硬件和 MQTT 双端业务联调。APK 编译通过不能证明这些环节正常。鸿蒙 HAP 编译与运行也未纳入本次检查。

工程 后台导入 实际载入块数 APK 编译 APK 字节数
BinaryTcpLab 通过 419 通过 4605955
BinaryWebSocketLab 通过 81 通过 4597763
BinaryHttpLab 通过 72 通过 4626435
BinaryMqttController 通过 82 通过 4597763
BinaryMqttDevice 通过 70 通过 4597763

完整的逐工程验证报告见 BinaryExamplesVerification.json,包含文件 SHA-256、变量引用数量、后台导入与编译结果及未验证项。

下载文件指纹

SHA-256 用来确认被复核的文件与当前下载文件是否一致:

1ee465b4f2941d8a74e49d1b1d40a54bdb9eaef97b1ca7f686fe501fdfd6ae89  BinaryHttpLab.aia
93d8813025e1ba7d7bc6852360be7d2c90a75b1623a7f2e00fd35164b668a96a  BinaryTcpLab.aia
7751664846b9835bb8650f0a613d29d783a3570346a7a6c7b98aafd94ce28239  BinaryWebSocketLab.aia
58a0e2d1901ce9cc83f7cab4f7dbd919b970a2a1120fc1b8c3aa8645a71f89a4  BinaryMqttController.aia
0b04d162cc458c7797a1d8bc6db6469c503ffa6f1f8d2d6c660e19d562c5bb14  BinaryMqttDevice.aia

复核方法

仓库内已保留后台导入测试 BinaryTopicProjectImportTest,以及直接读取 AIA 的检查工具 check-aia-projects.js。工具需要 Python 3、Playwright、Chromium、已构建的组件描述符和预览资源;--apk 还需要 Java 与已构建的 BuildServer。

ant -f appengine/build.xml \
  -Dtest_name=com.google.appinventor.server.BinaryTopicProjectImportTest AiServerLibTests

# 可用 PLAYWRIGHT_DIR 和 CHROME_BIN 指定已有 Playwright 与 Chromium。
node appengine/tools/block-preview/check-aia-projects.js --import --apk \
  --report /tmp/doc-parameters-aia-verification.json \
  docs/markdown/reference/creative/files/Binary*.aia \
  docs/markdown/reference/creative/files/SerialBinaryLab.aia

检查工具会输出证据目录,保存各项目的完整 YAIL、载入块数、构建日志、构建结果和 APK。

TCP、HTTP 与 WebSocket 的 Python 测试服务已做电脑端实际收发检查;这项结果用于验证对端程序,不替代手机应用与对端的联调。

USB 串口诊断工程验证

2026-10-03 重新生成并复核 SerialBinaryLab.aia。此记录只对应 USB 串口诊断示例,不替代上表五个通信示例的记录。

  • 最终归档结构、当前组件描述符、实际 SCM/BKY 检查通过。
  • 实际 Blockly 载入全部 208 个积木;无丢失,51 个变量引用的下拉框值全部有效,从完整表单生成 YAIL。
  • 真实 FileImporterImpl 隔离导入通过,原始屏幕与积木字节保留。
  • 当前 Android BuildServer 实际 APK 编译通过,APK 4651011 字节。
  • 归档 SHA-256:bc676ee74a6895e5e11231788039a5b342554c47cbe89dbb3ca42f6b65d88d74。

完整使用步骤、连接前提、固定帧回显、缓存/校验和超时流程见串口使用指导。重新生成:python3 appengine/tools/build-binary-topic-examples.py --serial-only;复核:

node appengine/tools/block-preview/check-aia-projects.js --import --apk \
  --report /tmp/serial-aia-verification.json \
  docs/markdown/reference/creative/files/SerialBinaryLab.aia

串口组件的驱动替身测试已覆盖 00/FF/80 保留、实际读取长度、空读/空写、无效输入、未打开、短写/读取失败和重置时释放连接。它验证的是组件逻辑,未验证 USB 真机、具体芯片、OTG、接线或鸿蒙设备收发/HAP;不要把该工程标为真机回显已通过。

文档反馈