docs: 记录 B-273 Android 客户端清理与候选包
Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
Cursor
multica-agent
parent
1774e596ba
commit
613d38dd06
@@ -0,0 +1,103 @@
|
||||
# B-273 Android 悬浮窗、语音文案与位置发送清理
|
||||
|
||||
分支:`agent/agent/3f3d8cc3`(基于 `agent/agent/2b5c0459` HEAD `092039b`)
|
||||
施工依据:B-269 第七、八、十节;B-91 视觉规范 v2(本卡不做换肤)。
|
||||
本卡只改 `mobile-next/` 客户端,不发布、不改现网、不覆盖 Gitea Release。
|
||||
|
||||
**结论:三项清理已落地;Android release 真实构建通过。缺真机账号,首次安装权限弹窗、前后台语音、历史位置消息展示继续标为未测。**
|
||||
|
||||
## 基线
|
||||
|
||||
- 开工 HEAD:`092039b` `fix(mobile-next): 收口我的信息只读字段显示`
|
||||
- 远端 `origin/agent/agent/2b5c0459` 与开工提交一致,未覆盖他人变更
|
||||
|
||||
## 三项对照
|
||||
|
||||
| # | 目标 | 修改位置 | 结果 |
|
||||
|---|---|---|---|
|
||||
| 1 | 去掉悬浮窗 | `AndroidManifest.xml` 以 `tools:node="remove"` 剔除 `SYSTEM_ALERT_WINDOW`;删除 IM 同步后申请;删除旧 `CallService` 声明;来电不再走 overlay 分支 | 合并清单无悬浮窗权限、无 `CallService` |
|
||||
| 2 | 通话入口改成语音 | `toolboxCall` / `audioAndVideoCall` →「语音通话」;资料页改麦克风图标;通话选择表只留语音;三个入口仍只发 `CallType.audio` | 相册「拍摄」和「视频」消息文案未改 |
|
||||
| 3 | 去掉位置发送 | 工具箱/选点页/`sendLocation` 删除;去掉 `geolocator`;定位权限 `tools:node="remove"`;保留历史位置气泡与 `MapView`,解析失败回退「位置消息」+ 地址 | 合并清单无定位权限 |
|
||||
|
||||
旧插件 `local_plugin/flutter_openim_live_alert` 未物理删除(B-269:可先停用、另卡再删),应用清单已不再声明其服务。
|
||||
|
||||
`REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` 仍由 `flutter_background`(已接通通话前台服务)合并进来;客户端登录/同步不再申请。`CALL_PHONE` / `READ_PHONE_STATE` / `REQUEST_INSTALL_PACKAGES` 仍有拨号、WebRTC、升级外链用途,未动。
|
||||
|
||||
## 提交主题(可逐项 `git revert`)
|
||||
|
||||
从新到旧回退:先本验收记录,再测试,再代码。
|
||||
|
||||
| 主题 | SHA | 文件 |
|
||||
|---|---|---|
|
||||
| 本验收记录 | 本文件当次提交 | `docs/acceptance/b273-android-client-cleanup.md` |
|
||||
| 定向测试 | `1774e59` | `mobile-next/test/company/b273_client_cleanup_test.dart` |
|
||||
| 三项清理代码 | `694891c` | 悬浮窗、语音文案、位置发送 |
|
||||
|
||||
回退示例(新到旧):
|
||||
|
||||
```
|
||||
git revert <本验收提交>
|
||||
git revert 1774e59
|
||||
git revert 694891c
|
||||
```
|
||||
|
||||
回退不影响 `mobile/`、`pc-client/`、`account-service/`、`config/`、`scripts/`、现网服务与已发布安装包。
|
||||
|
||||
## 环境
|
||||
|
||||
- Flutter 3.24.5 / Dart 3.5.4(`C:\flutter324`)
|
||||
- Temurin JDK 17.0.20+8
|
||||
- Android SDK:既有 B-95 工具链(compileSdk 34)
|
||||
- `org.gradle.jvmargs=-Xmx4096M`
|
||||
|
||||
## 检查与构建
|
||||
|
||||
### 定点测试
|
||||
|
||||
```
|
||||
cd mobile-next
|
||||
flutter test test/company/b273_client_cleanup_test.dart test/company/call_visual_rework_test.dart test/company/call_session_guard_test.dart test/company/rtc_token_mapper_test.dart test/company/user_full_info_mapper_test.dart
|
||||
```
|
||||
|
||||
25 项通过:清理清单/文案/位置回退、通话视觉 Token、占线/去重/超时、换票映射、「我的信息」映射。
|
||||
|
||||
定点 `flutter analyze` 修改文件:**0 error**。存量 info/warning 未作为本卡阻塞。
|
||||
|
||||
### Android(真实构建)
|
||||
|
||||
```
|
||||
cd mobile-next
|
||||
flutter build apk --release
|
||||
```
|
||||
|
||||
| 产物 | 版本 | 包名 | 大小 | SHA256 |
|
||||
|---|---|---|---|---|
|
||||
| Android release APK | 3.8.3+180 | `io.openim.flutter.demo` | 53,096,372 B | `F50D9DAA57D4BCCA6A4841F2B8156E034C794C859CEDD3C02B7856103E084913` |
|
||||
|
||||
路径:`mobile-next/build/app/outputs/flutter-apk/app-release.apk`(APK 内嵌时间戳,哈希不可位级复现)
|
||||
|
||||
构建期告警同 B-261:Flutter Gradle apply-script 弃用;部分依赖 Kotlin metadata 1.8.0 vs 工程预期 1.6.0。release 通过。
|
||||
|
||||
合并清单 `build/app/intermediates/merged_manifests/release/AndroidManifest.xml`:**无** `SYSTEM_ALERT_WINDOW`、**无** `ACCESS_*LOCATION`、**无** `CallService`。
|
||||
|
||||
候选包只附本卡,未发布 Gitea Release。
|
||||
|
||||
## 已测 / 未测
|
||||
|
||||
已测:
|
||||
|
||||
- 定点测试 25 项通过
|
||||
- 改动文件 `flutter analyze` 无新增 error
|
||||
- Android release 构建通过,合并清单无悬浮窗/定位权限
|
||||
- 通话三个入口源码仍只发 `CallType.audio`;相册/拍摄/视频消息代码未删
|
||||
|
||||
未测(不得写成已通过):
|
||||
|
||||
- 真机首次安装、登录、IM 同步是否还弹出「显示在其他应用上层」
|
||||
- 前后台/锁屏语音呼出与来电
|
||||
- 历史位置消息真机展示与地图不可用回退
|
||||
- 工具箱相册/拍摄/文件/名片真机回归
|
||||
|
||||
## 越界比对
|
||||
|
||||
相对 `092039b`:仅 `mobile-next/` 与本验收文档。`mobile/`、`pc-client/`、`account-service/`、现网配置 **零改动**。
|
||||
Reference in New Issue
Block a user