Files
MapLibreParticleLab/docs/报告/STEP-061_Android最终验收报告_v1.md
OpenAI Codex 729d22169d
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: close STEP-061 Android validation
2026-09-09 08:44:18 +08:00

3.5 KiB
Raw Permalink Blame History

STEP-061 Android 最终验收报告 v1

日期:2026-09-09 结论:PASS

1. 验收对象

  • 分支:particle/main
  • Source commit:4467adcce02db7f1bbbea1f4a829023c53085e39
  • AAR:org.maplibre.gl:android-sdk-opengl:13.4.1-step061
  • Android Test Host:D:\React\MapLibreParticleRNTestHost-Win11-STEP060-20260907
  • Android 设备:192.168.1.146

2. AAR 与 Maven

AAR 按固定命令构建:

JOBS=1 RENDERER=opengl BUILDTYPE=Release make apackage

构建输出确认 --max-workers=1,最终 BUILD SUCCESSFUL in 7m 10s。Maven Local publish 为 BUILD SUCCESSFUL in 20s。

Linux build output 与 Maven Local AAR SHA-256 均为: 40ec19724cbe0807c09c6acf9b7e6e0dac2f2498f1269b6bacdd35740a6cd77a。 CARBON7i 使用 curl.exe -L 并为 AAR/POM/module 分别使用新的 ?v= 下载;Win11 下载 AAR 与 Maven Local AAR SHA-256 均与 Linux 一致。

Bridge 与 MLRN 两条 dependencyInsight 均只解析到 org.maplibre.gl:android-sdk-opengl:13.4.1-step061,两次 Gradle 检查均 BUILD SUCCESSFUL。

3. APK 与启动环境

  • :app:assembleDebug:BUILD SUCCESSFUL in 1m 50s,206 actionable tasks,22 executed、184 up-to-date。
  • Manifest 保持 android:screenOrientation="landscape"。
  • Metro 8091 正常监听。
  • ADB reverse:tcp:8091 -> tcp:8091、tcp:8081 -> tcp:8091。
  • adb install -r:Success;.MainActivity 正常启动。
  • 验收 PID:24476。

4. Binary U/V runtime hard gate

首次进入时为预期初态:WAITING_FOR_FIELDS / PAUSE / AUTO、Binary PENDING、TIMELINE_NOT_READY。

点击 SUBMIT BINARY WIND T0/T1 后,再执行 GETSTATE 重新读取 Native state,稳定结果为:

  • runtime: READY / PAUSE / AUTO
  • Binary Transport: READY: FILE_REF / FLOAT32_LE / INTERLEAVED_UV
  • Invalid Probe: REJECTED_ADAPTER
  • T0 Submit Result: ACCEPTED_PENDING_INITIAL_WINDOW
  • T1 Submit Result: INITIAL_WINDOW_READY
  • Runtime Field Window: Core evidence: INITIAL_WINDOW_READY + runtime READY
  • producer identity:T0=1@1767225600000、T1=2@1767229200000
  • MIX:Core-owned / not exposed

清空 logcat 后再次重复提交,结果仍一致。负向 probe 的 Native Warning 明确为:HOST_FIELD_SUBMIT_REJECTED、REJECTED_ADAPTER、PAYLOAD_SIZE_MISMATCH、payloadBytes=95,证明非法 payload 进入既有 Core Adapter 并 fail-closed。

5. Logcat hard gate

当前 App PID 下以下计数均为 0:

  • FATAL EXCEPTION
  • SIGSEGV
  • WEATHER_OBJECTS_NOT_READY
  • JNI DETECTED ERROR
  • UnsatisfiedLinkError
  • NoSuchMethodError

Release AAR 中 HOST_FIELD_SNAPSHOT_READY 与 HOST_FIELD_INITIAL_WINDOW_READY 是 Log::Info;本轮设备 logcat 未观察到这两条 INFO 事件,因此未将其伪造为验收证据。正向证据以 bridge 直接返回的 Core result 与 GETSTATE 的 Native READY 为准。

6. 边界与清理

  • 未进入 NavSea。
  • 未把 provider/network/vendor/Weather Service/download/cache/prefetch 逻辑放入 MapLibre Native/Core。
  • 正式 transport 未使用 number[]、payload JSON、base64 或 hex。
  • 未加入或运行 Jest。
  • 本轮未启用临时 STEP-060 full-validation UI;legacy runtime App.tsx 与 Git 当前 App.tsx SHA-256 一致,baseline UI 保持不变。
  • /mnt/nas/pbf 中 13.4.1-step061 临时 AAR/POM/module 已全部删除。

7. 最终判定

Binary file-reference transport、非法 payload fail-closed、T0 pending、T1 initial-window-ready、Native runtime READY、依赖唯一性、AAR/APK 构建及 crash hard gate 全部通过。

STEP-061 可正式标记为 CLOSED / PASS。