diff --git a/docs/50_Step记录/STEP-060_RNTestHost与WeatherRuntime薄桥接_v3.md b/docs/50_Step记录/STEP-060_RNTestHost与WeatherRuntime薄桥接_v3.md new file mode 100644 index 000000000..1cbfeaf78 --- /dev/null +++ b/docs/50_Step记录/STEP-060_RNTestHost与WeatherRuntime薄桥接_v3.md @@ -0,0 +1,27 @@ +# STEP-060 RN Test Host 与 WeatherRuntime 薄桥接 + +状态:`CLOSED / PASS` + +## 最终结论 + +STEP-060 已完成 React Native Test Host → MLRN → custom MapLibre Android → WeatherRuntime 的低频控制面闭环,并于 2026-09-08 完成 STEP-060F Android 最终实测。 + +- CoreOnly `WeatherColorLayer` / `RasterParticleLayer` 保持不变,未新增 Java weather layer peer。 +- RN bridge attach 通过 Core Style source/layer 真值检查,不再依赖 Java `Style.getLayer/getLayers`。 +- `WeatherRuntime.setWeatherColorOpacity()` 已使用独立 typed Java/JNI/Core 路径,直达 `WeatherColorLayer::setOpacity()`。 +- RasterParticle float-property whitelist 与 Timeline/Playback fail-closed 语义未扩大或改变。 +- Test Host 固定横屏;安装脚本同时建立 `8091 -> 8091` 与 `8081 -> 8091` Metro reverse。 + +## Android 最终验收 + +- OpenGL Release AAR `13.4.1-step060f` 使用 `JOBS=1` 构建成功,四 ABI 均存在。 +- Linux build output 与 Maven Local AAR SHA-256 一致:`53dfcd43f3479ae43a3c0fd91c10ccbfec7cf1c84ae22ae3435c94393806da6d`。 +- CARBON7i 下载后的 AAR SHA-256 与 Linux 一致,Win11 Maven Local 安装完成。 +- Bridge 与 MLRN 两条 `dependencyInsight` 均解析到 `org.maplibre.gl:android-sdk-opengl:13.4.1-step060f`。 +- Test Host APK `assembleDebug`:`BUILD SUCCESSFUL`。 +- Android 设备 `192.168.1.146`:`SCREEN_ORIENTATION_LANDSCAPE`。 +- 运行时:`WeatherRuntime attached`,`runtime: WAITING_FOR_FIELDS / PAUSE / AUTO`。 +- 完整验证 UI:`weather opacity: ACCEPTED`。 +- 当前 App PID 日志未发现 `WEATHER_OBJECTS_NOT_READY`、`UNSUPPORTED_PROPERTY`、`FATAL EXCEPTION`、`SIGSEGV` 或 `JNI DETECTED`。 + +无 Binary Field 时 Timeline 命令继续允许因 `TIMELINE_NOT_READY` 返回 `REJECTED`;这是预期行为,不阻塞 STEP-060 关闭。 diff --git a/docs/报告/STEP-060F_Android最终验收报告_v1.md b/docs/报告/STEP-060F_Android最终验收报告_v1.md new file mode 100644 index 000000000..73d5c16e4 --- /dev/null +++ b/docs/报告/STEP-060F_Android最终验收报告_v1.md @@ -0,0 +1,28 @@ +# STEP-060F Android 最终验收报告 v1 + +日期:2026-09-08 +结论:`PASS` + +## 构建与制品 + +- Linux AAR:`org.maplibre.gl:android-sdk-opengl:13.4.1-step060f` +- AAR 构建使用 `JOBS=1`,OpenGL Release 四 ABI 成功。 +- Linux build output 与 Maven Local AAR SHA-256:`53dfcd43f3479ae43a3c0fd91c10ccbfec7cf1c84ae22ae3435c94393806da6d`。 +- CARBON7i 通过带 cache-busting 参数的 `curl.exe -L` 下载,SHA-256 与 Linux 完全一致。 +- Win11 Maven Local 安装完成;Bridge 与 MLRN 两条 `dependencyInsight` 均解析到 `13.4.1-step060f`。 +- Test Host `assembleDebug`:`BUILD SUCCESSFUL in 1m 43s`。 + +## 设备运行结果 + +- 设备:`192.168.1.146`。 +- 安装脚本双 reverse 生效:`tcp:8091 -> tcp:8091`、`tcp:8081 -> tcp:8091`。 +- Activity 方向:`SCREEN_ORIENTATION_LANDSCAPE`。 +- UI:`WeatherRuntime attached`。 +- Runtime:`WAITING_FOR_FIELDS / PAUSE / AUTO`。 +- 完整验证 UI 的 `weather opacity`:`ACCEPTED`。 + +## Hard gate + +当前 App PID 日志未发现:`WEATHER_OBJECTS_NOT_READY`、`STYLE_PROPERTY_SET result=UNSUPPORTED_PROPERTY`、`UNSUPPORTED_PROPERTY`、`FATAL EXCEPTION`、`SIGSEGV`、`JNI DETECTED`、`RUNTIME_DISPOSED`、`MAP_VIEW_NOT_FOUND`、`STYLE_NOT_READY`。 + +`TIMELINE_NOT_READY` 在未提交 Binary Field 的 STEP-060 阶段仍属预期 fail-closed 行为。STEP-060 可正式标记 `CLOSED / PASS`,下一阶段允许进入 STEP-061 Binary U/V Field Transport。 diff --git a/粒子开发记录.md b/粒子开发记录.md index 916c27ba3..5ef08d8b9 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -546,3 +546,11 @@ WeatherColorLayer 的 `ParticleGpuValidationUBO` designated initializer 补齐 ` - 修正 WeatherColor opacity 错走 particle-only setter:新增独立 Java/JNI/Core typed 路径,直达 `WeatherColorLayer::setOpacity()`,不扩大 RasterParticle whitelist 或新增 Java Layer peer。 - Test Host 将 `8091 -> 8091` 与 Android debug probe 所需 `8081 -> 8091` 固化到 Git 受控启动脚本,保留 `app.json` landscape;临时坐标升为 `13.4.1-step060f`。 - 状态为 `IMPLEMENTED / WAITING_ANDROID_VALIDATION`;AAR/APK/ADB/设备最终复验等待用户,本轮未进入 STEP-061。 + +# 2026-09-08 — STEP-060F Android 最终验收通过 + +- `13.4.1-step060f` OpenGL AAR 以 `JOBS=1` 构建并发布成功;Linux build output、Maven Local 与 CARBON7i 下载 AAR SHA-256 均为 `53dfcd43f3479ae43a3c0fd91c10ccbfec7cf1c84ae22ae3435c94393806da6d`。 +- Bridge 与 MLRN 两条 `dependencyInsight` 均解析到 `13.4.1-step060f`;Test Host APK `assembleDebug` 通过。 +- Android 实测横屏、双 Metro reverse、`WeatherRuntime attached` 均通过;完整验证 UI 的 `weather opacity` 返回 `ACCEPTED`。 +- 当前 App PID 日志无 `WEATHER_OBJECTS_NOT_READY`、`UNSUPPORTED_PROPERTY`、FATAL/JNI/SIGSEGV hard-gate 错误;无 Binary Field 时 `TIMELINE_NOT_READY` 继续按预期 fail-closed。 +- STEP-060 正式 `CLOSED / PASS`;后续可进入 STEP-061 Binary U/V Field Transport。