docs: close STEP-061 Android validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
53
docs/50_Step记录/STEP-061_Binary_UV_Field_Transport_v2.md
Normal file
53
docs/50_Step记录/STEP-061_Binary_UV_Field_Transport_v2.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# STEP-061 Binary U/V Field Transport v2
|
||||
|
||||
状态:`CLOSED / PASS`
|
||||
日期:2026-09-09
|
||||
|
||||
## 最终结论
|
||||
|
||||
STEP-061 已完成 RN Test Host → WeatherRuntime → Android Java/JNI → RasterArraySource/Core 的正式 Binary U/V Field Transport,并完成 Android OpenGL 端到端实机验收。
|
||||
|
||||
- 正式 transport 为 `metadataJson + local file reference`;payload 为 raw `float32-le / interleaved-uv` bytes。
|
||||
- 未使用 `number[]`、payload JSON、base64、hex,也未引入 provider/network/vendor 逻辑到 Native/Core。
|
||||
- 继续复用唯一 `WeatherRuntime.submitWindField(metadataJson, byte[])` ingress;未新建第二套 Adapter、Timeline 或 Runtime Field Window。
|
||||
- Core 保持 schema、byteLength、generation、validTime、Timeline、Runtime Window 与 fail-closed 的最终所有权。
|
||||
|
||||
## 构建与制品
|
||||
|
||||
- Source commit:`4467adcce02db7f1bbbea1f4a829023c53085e39`。
|
||||
- AAR:`org.maplibre.gl:android-sdk-opengl:13.4.1-step061`。
|
||||
- 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` 加不同 `?v=` 下载 AAR/POM/module;Win11 AAR SHA-256 与 Linux 完全一致。
|
||||
- Win11 Maven Local 安装完成;Bridge 与 MLRN 两条 `dependencyInsight` 均解析到 `13.4.1-step061` 并 `BUILD SUCCESSFUL`。
|
||||
- Test Host APK `assembleDebug`:`BUILD SUCCESSFUL in 1m 50s`。
|
||||
|
||||
## Android 最终验收
|
||||
|
||||
设备固定为 `192.168.1.146`,横屏运行;双 reverse 为 `8091 -> 8091`、`8081 -> 8091`。
|
||||
|
||||
重复提交并重新读取 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`
|
||||
|
||||
当前 App PID 为 `24476`;日志 hard gate 中 `FATAL EXCEPTION`、`SIGSEGV`、`WEATHER_OBJECTS_NOT_READY`、`JNI DETECTED ERROR`、`UnsatisfiedLinkError`、`NoSuchMethodError` 均为 0。
|
||||
## 可观测性说明
|
||||
|
||||
Release AAR 中既有 `HOST_FIELD_SNAPSHOT_READY`、`HOST_FIELD_INITIAL_WINDOW_READY` 为 `Log::Info`,本轮设备 logcat 未观察到这两条 INFO 事件;未把不存在的日志写成 PASS 证据。负向 `HOST_FIELD_SUBMIT_REJECTED` Warning 可见,并明确给出 `PAYLOAD_SIZE_MISMATCH`。
|
||||
|
||||
正向 hard gate 采用 bridge 直接返回的 Core submit result,加上重新执行 GETSTATE 后的 Native `READY` 状态;这两类结果均来自现有 WeatherRuntime/Core 链,不由 JS 自行推导 T0/T1/MIX。
|
||||
|
||||
## 收尾
|
||||
|
||||
- 未启用 `07-enable-full-validation-ui.ps1`,因此没有临时 STEP-060 validation UI 需要回退;legacy runtime `App.tsx` 与当前 Git 工作副本 `App.tsx` SHA-256 完全一致,baseline 已保持。
|
||||
- `/mnt/nas/pbf` 中本 Step 临时公开的 AAR/POM/module 已全部删除。
|
||||
- 未进入 NavSea,未加入或运行 Jest。
|
||||
- STEP-061 正式关闭,状态为 `CLOSED / PASS`。
|
||||
79
docs/报告/STEP-061_Android最终验收报告_v1.md
Normal file
79
docs/报告/STEP-061_Android最终验收报告_v1.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 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`。
|
||||
10
粒子开发记录.md
10
粒子开发记录.md
@@ -569,3 +569,13 @@ WeatherColorLayer 的 `ParticleGpuValidationUBO` designated initializer 补齐 `
|
||||
- Kotlin 显式捕获 IOException、拒绝无 scheme 相对路径,metadata 上限按 UTF-8 bytes 计算。AAR 坐标已准备为唯一 `13.4.1-step061`,不覆盖冻结 step060f;本轮按限制未 build/publish,待 RDC 后续指令。
|
||||
|
||||
- 本轮 `npm run typecheck`、RN Codegen(仅 `/tmp`)、plugin `node --check`、禁止 transport 审计与 `git diff --check` 均通过;继续停在 Codex prompt 等待 RDC。
|
||||
|
||||
# 2026-09-09 — STEP-061 Binary U/V Field Transport Android 最终关闭
|
||||
|
||||
- Source commit `4467adcce02db7f1bbbea1f4a829023c53085e39` 的 RN binary file-reference transport 已完成 Android OpenGL 端到端验收,STEP-061 正式 `CLOSED / PASS`。
|
||||
- AAR `org.maplibre.gl:android-sdk-opengl:13.4.1-step061` 以 `JOBS=1` 构建;Linux build output 与 Maven Local SHA-256 均为 `40ec19724cbe0807c09c6acf9b7e6e0dac2f2498f1269b6bacdd35740a6cd77a`,CARBON7i 下载与 Win11 Maven Local 同 SHA。
|
||||
- Bridge 与 MLRN dependencyInsight 均唯一解析到 `13.4.1-step061`;Win11 Test Host `assembleDebug` 为 `BUILD SUCCESSFUL in 1m 50s`。
|
||||
- Android `192.168.1.146` 实测:Invalid=`REJECTED_ADAPTER`,T0=`ACCEPTED_PENDING_INITIAL_WINDOW`,T1=`INITIAL_WINDOW_READY`,GETSTATE 后 runtime=`READY / PAUSE / AUTO`;Binary Transport=`READY: FILE_REF / FLOAT32_LE / INTERLEAVED_UV`。
|
||||
- 当前 App PID hard gate 中 FATAL/SIGSEGV/WEATHER_OBJECTS_NOT_READY/JNI DETECTED/UnsatisfiedLinkError/NoSuchMethodError 均为 0;非法 payload 的 `PAYLOAD_SIZE_MISMATCH` Warning 可见并保持 fail-closed。
|
||||
- Release AAR 的 `HOST_FIELD_SNAPSHOT_READY` / `HOST_FIELD_INITIAL_WINDOW_READY` INFO 日志本轮未在设备 logcat 观察到,已如实记录为 observability 限制;未伪造日志证据,正向以 direct Core result + Native READY 为权威。
|
||||
- 未进入 NavSea,未引入 provider/network/vendor 逻辑,未使用 number[]/payload JSON/base64/hex,未加入或运行 Jest;`/mnt/nas/pbf` 临时制品已清理,baseline UI 与 Git 当前 App.tsx 保持一致。
|
||||
|
||||
Reference in New Issue
Block a user