Files
MapLibreParticleLab/docs/报告/STEP-105_FZG_MapLibre13.6.1测试APK打包安装_RDC执行报告_v1.md
tei c30add4d33
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs(android): record FZG MapLibre 13.6.1 APK installation verification
2026-10-09 12:05:55 +09:00

5.1 KiB
Raw Permalink Blame History

STEP-105 Android Native 13.6.1 — FZG1-2 Validation APK 打包与安装 RDC 执行报告 v1

1. 结论

APK_BUILD_PASS / FZG_INSTALL_PASS / DEVICE_APK_HASH_PASS / RUNTIME_NOT_RUN。

本次在 Mac 使用官方 MapLibre Native Android 13.6.1 + Particle .21 升级候选打包 MapLibreAndroidTestApp,通过 FZG1-2 的 ADB 覆盖安装,并在设备端核对实际版本和完整 APK SHA-256。没有安装 NavSea,也没有声明粒子运行态通过。

2. 环境与版本

  • Mac 目录:/Users/tei/dev/MapLibreParticleLab-upgrade-android-1361
  • 源码分支:upgrade/android-native-13.6.1-20261009
  • 构建源 HEAD:30d0e6665eb16a258e47b3a8cc0d16932e43762b
  • 底座 Native:android-v13.6.1;OpenGL Debug,Native ABI x86_64
  • Test App 包名:org.maplibre.android.testapp;新版本 13.6.1,versionCode=14,targetSdk=35。
  • FZG:FZG1-2 / Android 13 / 192.168.200.139:5555,ro.product.cpu.abi=x86_64;另一台 Odin 不在修改范围。
  • 工具:Mac JDK17、Android SDK/NDK、Gradle --console=plain;缺失的 Android SDK Platform 35 已经由 Gradle 获取。

3. APK 构建与失败恢复

使用项目原有 tools/particle_android_validation/build_validation_apk.sh。

  1. 第一轮 Gradle :MapLibreAndroidTestApp:assembleOpenglDebug 编译 BUILD SUCCESSFUL in 6m 48s,但原 Validation 脚本要求 APK 全部 ABI 集合精确为 x86_64。实际 APK 其他 ABI 含有 Sentry 日志库 libsentry.so / libsentry-android.so,因此脚本按照 fail-closed 策略拒绝打包,未安装。
  2. 调整 tools/particle_android_validation/build_validation_apk.sh:所有非目标 ABI 的文件只接受 arm64-v8a、armeabi-v7a、x86 下这两种 Sentry 库;其它意外 Native 库仍拒绝。额外确认 lib/x86_64/libmaplibre.so、lib/x86_64/libexample-custom-layer.so 存在;保持 APK 体积及 libmaplibre.so 体积上限。
  3. 脚本通过 bash -n、git diff --check;增量 Gradle BUILD SUCCESSFUL in 10s,脚本报告 BUILD SUCCESS。
  4. 修改脚本单独 Git commit:73db0356ac5860366f314ddba23b716220e7c16a。APK 的 build-info.txt 记录源码 HEAD 30d0e6665e 且当时 git_dirty=true,因为脚本尚未提交;这里如实保留这一构建时事实,不能把后续 commit 当作已经编入 APK 的 C++ SHA。

4. APK 最终产物

  • 相对路径:artifacts/maplibre-particle/step105-native1361-fzg/MapLibreAndroidTestApp-validation-opengl-debug-x86_64.apk
  • APK 字节数:66,505,502。
  • libmaplibre.so 在 APK 内的字节数:39,970,088。
  • SHA-256:77bc0b238fb476494410a603443030b104d78f97a737307be52460bf5a68f5aa。
  • aapt dump badging:org.maplibre.android.testapp / versionName=13.6.1。
  • apksigner verify PASS;校验日志中的非致命 META-INF 元信息警告不代表签名失败。
  • APK 同时携带三种其它 ABI 的 Sentry 辅助库;libmaplibre.so 和 Test App Custom Layer 均仅为 x86_64。产物命名中的 x86_64 指 MapLibre Native 编译目标,不表示 APK 没有任何其它架构的 Sentry 依赖。

5. FZG 安装与设备端回读

  • 安装前原版:13.4.1-particle.21,包名相同。
  • 从设备拉取旧 APK,apksigner verify --print-certs 核对新旧证书 SHA-256 均为 e3f8fae6451ed6322259d090dd8e8788df554ab25ed89a01c78014f1d5ef8236,允许正常覆盖。
  • 安装命令:adb -s 192.168.200.139:5555 install -r <APK>。
  • ADB 明确返回 Success,完成时间 2026-10-09 12:03:06 JST。
  • dumpsys package:versionName=13.6.1,lastUpdateTime=2026-10-09 12:03:06,firstInstallTime=2026-09-22 07:34:56,未卸载重装。
  • adb shell sha256sum /data/app/.../base.apk 返回 77bc0b238fb476494410a603443030b104d78f97a737307be52460bf5a68f5aa,与 Mac 本地 APK 字节级一致。
  • 安装后 FZG 前台仍是 com.navsea.app/.MainActivity。这不是 NavSea 更换 Native AAR/npm,也未更改 NavSea 本身。

6. 回退与未完成内容

  • 安装前旧 APK 备份在(Git 忽略目录):artifacts/maplibre-particle/step105-native1361-fzg/rollback/MapLibreAndroidTestApp-original-13.4.1-particle.21.apk,SHA-256 999f773276b29fffae05c1edc977e19df6cebecd94e4a4095508d0c5e97e07c2。无需重新下载旧版 APK;尚未执行回退。
  • NOT RUN:Test App 前台启动、GPU 粒子动画/QBIN/T0/T1、地图 pan/zoom/rotation、RenderSegment retained、Style/layer unload/reload、崩溃/帧性能、其它 ABI、RN 11.5.0 和 iOS。
  • 下一阶段建议使用已安装的 FZG 测试 App 进行上述真实 GPU/生命周期回归,验收完成后再考虑升级分支合并或发布。
  • 本任务通过 RDC 直接构建/安装,没有调用 Codex 模型或替换 Codex 工作。与此前 STEP-104 的 GPT-6.1 Sol/High 实施范围不同。

7. 记录与 Git

  • Root recoder_step.md 追加事实,docs/50_Step记录/ 单独记录,完成报告写入 docs/报告/。
  • 脚本代码 commit 73db0356ac5860366f314ddba23b716220e7c16a。本次文档提交与 push、远端 HEAD 由 RDC 单独验收,最终结果以实际 Git 回执为准。
  • 只推送 upgrade/android-native-13.6.1-20261009;正式 particle/main 不更新。