5.1 KiB
5.1 KiB
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 ABIx86_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。
- 第一轮 Gradle
:MapLibreAndroidTestApp:assembleOpenglDebug编译 BUILD SUCCESSFUL in 6m 48s,但原 Validation 脚本要求 APK 全部 ABI 集合精确为x86_64。实际 APK 其他 ABI 含有 Sentry 日志库libsentry.so/libsentry-android.so,因此脚本按照 fail-closed 策略拒绝打包,未安装。 - 调整
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体积上限。 - 脚本通过
bash -n、git diff --check;增量 Gradle BUILD SUCCESSFUL in 10s,脚本报告 BUILD SUCCESS。 - 修改脚本单独 Git commit:
73db0356ac5860366f314ddba23b716220e7c16a。APK 的build-info.txt记录源码 HEAD30d0e6665e且当时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 verifyPASS;校验日志中的非致命 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-256999f773276b29fffae05c1edc977e19df6cebecd94e4a4095508d0c5e97e07c2。无需重新下载旧版 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不更新。