chore: prepare V3-08 android validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-11 12:42:49 +08:00
parent dd356a277d
commit 11cf58d344
24 changed files with 383 additions and 398 deletions

View File

@@ -2,11 +2,12 @@
## 13.4.1-particle.3
- V3-08 将 RN package、Expo plugin 与 Test Host 的目标 Native 坐标同步为 `cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2`;`.2` 是 STEP-069 v2 multi-plane 所需的新 artifact,绝不复用或覆盖 `.1`。
- 此项仅为 Android 手工构建、Maven Local 发布与单次综合验收做准备;AAR 尚未发布或验收,未执行 Android Gradle/AAR/APK/ADB 或 Jest。
- `FieldRuntime.submitField` 升级为 `maplibre-particle-field/v2` 的明确 `FieldPayloadRefs`:shared validity 加可选 scalar/vector 本地文件,不再接受模糊单 payload。
- 新增 `setFieldValueSource` 与 `setParticleAdvectionScale`,仅桥接既有 renderer 配置,不重传 field 或改变 Timeline。
- 保留 `submitWindField` native/internal v1 ABI;公共兼容入口改名为 `submitLegacyVectorField`,避免与 v2 混淆。
- Android bridge 在读取前校验全部 local file、非空 plane 与合计 64 MiB;Java/JNI 用有 presence flags 和长度的 v2 packed container 恢复 Core `ParticleFieldPayloadBundle`。
- Android artifact 未构建、未发布;Android Gradle/AAR/APK/ADB 与 Jest 均未执行。
## 13.4.1-particle.2

View File

@@ -7,9 +7,9 @@ Map 与 Camera 必须由 Consumer 直接从 `@maplibre/maplibre-react-native@11.
## 版本关系
- RN/TS 包:`13.4.1-particle.3`
- Android Native artifact:`cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1`
- Android Native artifact(V3-08 目标):`cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2`
本次仅整理 RN/TS 公共接口。Native artifact 未构建、未修改、未发布;Expo plugin 继续解析上述冻结 artifact。
`.2` 是 STEP-069 v2 multi-plane(shared validity 加可选 scalar/vector)的新 Native artifact 坐标,不能复用或覆盖旧 `.1`。本次只完成坐标准备;用户尚未手工构建、发布或验收 Android AAR,Expo plugin 现指向目标 `.2`,不得将其表述为已发布或已通过。
## 最小接入
@@ -61,7 +61,7 @@ await FieldRuntime.setFieldColorStops(reactTag, [
`submitField` 的 v2 `payloadRefs` 必须有 `validityFileUri`,并且必须有 `scalarFileUri` 或 `vectorFileUri`。每个引用只能是 `file://` URI 或绝对本地路径;桥接层会在读入前检查全部文件、非空性和合计 64 MiB 上限。它不接受 JS number array、Base64 或大 JSON payload。Core 继续按 metadata 精确校验各 plane 的长度、encoding、layout 和 validity。
`.2` 的 `submitField(reactTag, metadataJson, payloadFileUri)` 是单一 v1 vector payload。`.3` 不再以该模糊形状作为主入口;确有旧 native seam 的 Consumer 可显式调用 `submitLegacyVectorField`,它仅转发冻结的 v1 `submitWindField` ABI。新代码应使用 v2 `submitField`。
旧 Native `.1` 的 `submitWindField(metadataJson, byte[])` 是单一 v1 vector ABI。`.3` 不再以该模糊形状作为主入口;确有旧 native seam 的 Consumer 可显式调用 `submitLegacyVectorField`,它仅转发冻结的 v1 ABI。新代码应使用目标 Native `.2` 提供的 v2 `submitField`。
## 安装与发布

View File

@@ -14,7 +14,7 @@ android {
dependencies {
implementation "com.facebook.react:react-android"
implementation "org.jetbrains.kotlin:kotlin-stdlib:2.1.20"
implementation "cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1"
implementation "cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2"
compileOnly project(":maplibre_maplibre-react-native")
}

View File

@@ -6,7 +6,7 @@ const marker = "// @navsea/maplibre-particle-rn Android OpenGL release";
module.exports = function withNavSeaMapLibreParticle(config) {
return withProjectBuildGradle(config, (project) => {
if (project.modResults.contents.includes(marker)) return project;
project.modResults.contents += `\n${marker}\ngradle.projectsEvaluated {\n allprojects { p ->\n p.repositories.maven { repository -> repository.url = p.uri("https://pbf.jpcn.ccwu.cc/maven") }\n p.configurations.configureEach { configuration ->\n configuration.resolutionStrategy.dependencySubstitution {\n substitute module("org.maplibre.gl:android-sdk-opengl") using module("cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1")\n }\n }\n }\n}\nrootProject.ext.set("org.maplibre.reactnative.nativeVersion", "13.4.1")\nrootProject.ext.set("org.maplibre.reactnative.nativeVariant", "opengl")\n`;
project.modResults.contents += `\n${marker}\ngradle.projectsEvaluated {\n allprojects { p ->\n p.repositories.maven { repository -> repository.url = p.uri("https://pbf.jpcn.ccwu.cc/maven") }\n p.configurations.configureEach { configuration ->\n configuration.resolutionStrategy.dependencySubstitution {\n substitute module("org.maplibre.gl:android-sdk-opengl") using module("cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2")\n }\n }\n }\n}\nrootProject.ext.set("org.maplibre.reactnative.nativeVersion", "13.4.1")\nrootProject.ext.set("org.maplibre.reactnative.nativeVariant", "opengl")\n`;
return project;
});
};