Files
MapLibreParticleLab/docs/60_测试/STEP-119_FZG1_原PBF真实Fast验收结果_20261011.md
tei 499f6fb2c2
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: record STEP-119 real PBF Fast and missing-source control
2026-10-11 17:07:35 +09:00

5.2 KiB
Raw Blame History

STEP-119 Android STEP-119 原PBF真实Fast实机验收结果

日期:2026-10-11 JST。执行者:GPT指挥RDC,Mac/Android FZG1-2。阶段结论:ANDROID_FAST_CORE_PASS / OVERALL_PARTIAL(仅完成本页证据覆盖范围,不能宣称所有失效与双平台PASS)。

0. 源码和设备版本锁

  • Integration origin/main 与本地一致:80667d6c343411d03a760425438e3d292f452118。
  • Particle本次APK源码commit:3d989a00a822989339a6d7cb4d23acc04396670e;已由RDC限定文件提交并push origin/particle/main成功、本地远端HEAD一致。
  • APK标准OpenGL/x86_64 build_validation_apk.sh:Gradle BUILD SUCCESSFUL in 3m 40s;86 tasks(22 executed,64 up-to-date);APK 66,702,125字节,libmaplibre.so 40,138,024字节;SHA-256 57d68800770d431a2ce9247406f636e7a01cc19fccaf4c59f5eb3a7c99128135。
  • 设备:192.168.200.139:5555,ABI x86_64。ADB install -r返回Success,设备base.apk SHA-256与本地新APK完全相同。Python --preflight-only返回PREFLIGHT_PASS。
  • 不是正式release;没有修改原PBF服务器Style、业务API、iOS/Metal发行版本、SOURCE_LOCK或GSRL Tag。

1. Mac与C++编译范围

  • Mac Metal CMake首次PATH中找不到cmake;用已有绝对路径重试后CMake配置因原有libuv环境缺失终止。Homebrew尝试安装libuv时提示将连带升级CMake/Python/OpenSSL,RDC中止安装,未改变项目第三方依赖和Android构建工具链。Mac原生mbgl-test-runner未编译/运行,13项Step119SymbolResults非Jest测试没有实际执行;不能列为GTest PASS。
  • Android NDK28.2 OpenGL/x86_64真实compile_commands.json,C++20 + 原项目严格-Werror逐个-fsyntax-only检查:7个生产编译单元和2个已登记GTest单元,共9个全部PASS。修复2处util::toString命名空间和测试Immutable所有权类型问题。
  • Android真实Gradle编译链接、符号打包、APK安装已PASS,证明当前Android源码不仅能语法检查还可以全链构建。

2. 正向:STATIC_RC_NO_TIDE派生62基础图层+两天气图层

  • 在同一正式PBF URL读取原始63基础层;测试副本只移除唯一tide-spots引用,远端真实Style未改。
  • 实测原基础63 / 有效基础62 / Native64,R=[0,62),C=[62,64),Source: mapple/navsea_delivery/org.maplibre.annotations/rn-weather-fields,missingSourceIds=[],planValid=true。
  • 设备App PID 27241,观察 90.010秒,CompleteSummary=2,windowCount=120。
  • 当前最后Snapshot R cache:Build=1、Reuse=3276(累计),state=reuse,placementCapable=True,placementGatePassed=True。
  • 实际观察期FastDelta=1819,FullDelta=0,最近120帧Fast=119/Full=0(第120条可能pending),decisionMismatch=0。
  • Gate历史累计的static-unstable/cache-invalid等失败包含App启动阶段,不能解读为当前120帧仍失败;当前120帧是完整119Fast/0Full/1pending,决定匹配为0。最终R.reason字段中的静态字符串保留最后历史fallbackReason,不等于当前frame fallback。
  • 验证器状态FAST_OBSERVED/exit0;它本身只验计数,R Build/Reuse、Gate由独立解析真实Native摘要后确认。

3. 负向:原STATIC_RC完整63基础+两天气图层

  • 同一APK另起App PID 27492,观察 90.010秒。
  • 原始basePreserved=true,Native65,R=[0,63),C=[63,65),sources仍没有tide,missingSourceIds=['tide'],reason=missing-source。
  • R Build=0 / Reuse=0,FastDelta=0 / FullDelta=305,最近120帧Fast=0、Full=119,decisionMismatch=0。
  • 验证器返回NO_FAST_OBSERVED/exit2:这是负对照的预期安全拒绝(该测试目的PASS),不是STEP119正向失败;也不是原63正常可用Fast的证据。

4. 原始证据

  • 正向 result.json:artifacts/maplibre-particle/android-validation/step113-retest-20261011_170012/static_rc_no_tide/result.json;SHA-256=8718ce113820e7cc0cc2b4d5b801e6847c92e9ced79cd4fecbee58bfeef1c27c。
  • 正向设备截图 PNG 1920x1200:artifacts/maplibre-particle/android-validation/step113-retest-20261011_170012/static_rc_no_tide/screen.png;SHA-256=ce3480d7ee934dc871c1035cbcaf84e61bbcefe680717001f05751dc0e16fd23。该截图是设备取证,未开展人工作业图像对比或Symbol无重影验收。
  • 负向 result.json:artifacts/maplibre-particle/android-validation/step113-retest-20261011_170359/static_rc/result.json;SHA-256=0cc425ca138188af38aa04919631f2374257d2888630473fc93b4bff120ce128。
  • APK build-info.txt、build.log、严格C++定向语法日志均在原Git忽略artifacts目录。两份保护的STEP110/111 MD不提交、哈希不变。

5. 没有验证的边界

  • 缺少Mac libuv导致本次未真正运行13项新GTest、Metal/iOS二进制或iOS实体机;Android GL PASS不等于Metal PASS。
  • 未逐项做Source/Style/glyph/atlas/Annotation、相机Pan/Zoom/Rotate、viewport/pixelRatio、context恢复后的证书失效和重Build/Reuse真机负例。
  • 未进行同相机强制Full截图与Fast静态Symbol像素对比,也没有用户实际航标/文字/图标层序验收。
  • 因此本阶段判定核心功能Android真机Build/Reuse/Fast成功且缺源fail-closed成功,整体仍PARTIAL。后续应优先在同一APK上完成状态变化负例与人工像素,再由Mac Metal独立路径验证;不得重启不必要工具链或因此声称正式GSRL发版。