Files
kiosk/docs/汉秋_代码优化完成记录_2026-09-20.md
T

7.5 KiB
Raw Blame History

代码优化完成记录

  • 姓名 / 角色 / 项目:汉秋 / Android 开发 / KIOSK(照片打印机)
  • Git:ssh://git@gitea.zhifly.cn:2222/lujiuyin/kiosk.git
  • 开始日期 / 实际完成日期:2026-09-20 / 2026-09-20(本轮代码与工程检查完成)
  • 状态:待验收;设备功能与团队迁移确认尚未完成,不能据此宣称整项迁移或业务验收通过。
  • 工作分支:codex/kiosk-cleanup;本轮未推送远程。
  • 优化前提交:835d6ecd009ba9a607966e8b3340b840ea3b7d8a
  • 工程检查修复提交:5fe95f9
  • 优化后实现提交:e6b671ef7671820de08ec5df4557c4f2a5618ada;本记录及证据另行提交。

做了什么(A–G)

项目 本轮结果
A 基线 实测 Debug 构建、单测、Lint、受跟踪文件大小、Git 文件大小及 APK 大小。修改前构建和 44 项单测通过,Lint 因 4 个错误失败。
B 资源 删除 69 个资源名对应的 142 个无引用位图文件,合计 3,191,460 字节(3.044 MiB);覆盖同名分辨率变体,无有损压缩。
C 引用与依赖 对照本次 Lint 候选,检查代码、XML、Manifest、测试、构建配置和解包后的本地 JAR/AAR/SO 字符串。删除 Crashlytics buildtools 运行时依赖及其版本目录两项;前后依赖树仅减少该条目。
D 代码 未做业务代码删除或结构重构。缺少业务用途证据的模块继续保留;未修改任何对外接口、打印协议及数据库结构。
E 工程质量 Wrapper 改为 LF,新增限定 Wrapper 的换行规则;两处函数显式接受 Media3 不稳定 API;修正设备测试旧包名断言;定向处理 Glide NotificationTarget 的库告警。
F 杂物与文档 已检查,无额外确证无用文档需删除。保留现行说明、审查日志、验证截图、必要 SDK 和签名材料;新增本记录和审计证据。未清缓存冒充瘦身。
G Git 与迁移 确认本地 origin 已为 Gitea;保存两批实现提交。删除分支 0 个,未重写历史、未强推、未回收历史空间。读写权限、服务器和流水线迁移未验证。

资源删除依据及保留项见 资源审计清单。 ic_face_large、ic_upload_large 虽在 Lint 候选中,但源码仍有名称出现,因此保留;其他 XML/values 资源和用途不明的代码不按静态告警直接删除。剩余 161 项 UnusedResources 需后续逐项确认。

通知检查处理:源码未发现 NotificationTarget、系统通知发送或 startForeground 调用;Glide 用于图片显示。app/lint.xml 只匹配包含完整 NotificationTarget 类名的 NotificationPermission 消息,不全局禁用权限检查,也不新增无实际用途的通知权限。若未来接入系统通知,需要删除该豁免并实现权限流程。

前后对比

MiB = 1,048,576 字节。前后均使用本机 JBR 21.0.11、Gradle 8.11.1、AGP 8.10.0、Kotlin 2.1.10,离线依赖缓存、相同 Debug 配置及现有 ABI/签名设置;未开启 R8 或资源压缩。

指标 优化前 优化后 说明
受跟踪文件内容大小(MiB) 100.120 97.077 后值为实现提交 e6b671e,含工程规则、不含随后新增交付文档;排除 .git、未跟踪文件及构建缓存。
Git 文件内容合计(MiB) 60.121 60.037 后值采于实现提交后、交付文档提交前;Git 元数据会波动,不作为瘦身收益。未回收历史空间,待管理员回收复测。
Debug APK(MiB) 158.132 150.167 减少 7.965 MiB,约 5.04%。
删除文件数 — 142 全部为位图资源;新增交付证据另计。
删除分支数 — 0 旧分支未处置。
Lint 错误 / 警告 / 提示 4 / 329 / 8 0 / 257 / 8 剩余警告保留,不设置全量 baseline 屏蔽。
单元测试 44 通过 44 通过 失败、错误、跳过均为 0。

APK 字节数分别为 165,813,803 和 157,461,968;以上比较使用构建输出 metadata 对应 APK,避免混用历史包。Release 包未测,本轮结果不代表 Release 收益。

验证结果与复现

优化前命令(绕过已确认的 CRLF shell 入口问题):

java -classpath gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain :app:assembleDebug :app:testDebugUnitTest :app:lintDebug --offline --console=plain

每批及最终检查使用:

./gradlew :app:assembleDebug :app:testDebugUnitTest :app:lintDebug :app:assembleDebugAndroidTest --offline --console=plain
./gradlew :app:dependencies --configuration debugRuntimeClasspath --offline --console=plain

最终构建 BUILD SUCCESSFUL,92 个任务执行;不是 clean build。Debug APK、Android 测试 APK 均构建成功,44 项单测全部通过,Lint 无错误,git diff --check 通过。前后依赖树无无法解析的依赖,差异仅为移除 buildtools。

本机 adb devices 无连接设备,因此未运行设备测试、启动和页面导航、首页、人脸/最近照片、购片、海报播放或物理打印验证。设备测试 APK 可编译不等于设备测试通过。

验证证据:

初次受限环境无法写入 Gradle 缓存,取得执行权限后重新完成验证;此项为环境限制,不是工程缺陷。

还剩什么

  • 连接目标设备后执行上述核心功能和设备测试,复核通过再将状态改为“完成”。
  • 257 项 Lint 警告和 Room schema 导出配置等既有问题保留;没有为了本轮指标关闭检查。
  • 打印终态、订单回执、WebSocket 生命周期、下载内存上限、数据库迁移等见现有工程审查报告,不属于本轮改造。
  • 现有受跟踪签名材料和固定认证配置保持原状;需协调现网升级兼容及凭证管理后处理,文档不复制密码。
  • Gitea 本地远程配置已确认;拉取/推送权限、测试/生产部署、流水线、备份及旧源下线仍需负责人确认。
  • 本轮未代填飞书表格、未上传文档、未推送分支。团队分享链接需在文档上传或分支推送后补充。

认领表“完成说明”可粘贴文本

KIOSK 本轮清理与工程质量优化已完成,待验收。删除 142 个无引用位图文件,移除 Crashlytics buildtools 运行时依赖,修复 Wrapper、Media3 opt-in 和设备测试包名;定向处理不可达 Glide 通知路径的 Lint 告警。Debug APK 158.132 → 150.167 MiB(减少 5.04%);44 项单测通过,Lint 0 错误、257 警告,Debug 与设备测试 APK 构建通过。无连接设备,核心功能及物理打印待实机复核。Git 未回收历史空间;迁移权限和部署链路待负责人确认。分支 codex/kiosk-cleanup,实现提交 e6b671e。完成记录:汉秋_代码优化完成记录_2026-09-20.md(团队可访问链接待补)。