Update CLAUDE.md: UI component layer, theme, release build, version and publish notes

This commit is contained in:
2026-07-06 19:45:43 +08:00
parent 6e8fb52d1a
commit 82419d0cfb
+22 -2
View File
@@ -38,6 +38,17 @@ app/build/outputs/apk/debug/app-debug.apk
无 lint / 测试任务配置(项目未启用)。改完代码直接 `assembleDebug` 验证即可。 无 lint / 测试任务配置(项目未启用)。改完代码直接 `assembleDebug` 验证即可。
构建可分发的 release APK(已绑定 debug 签名,产出可直接安装):
```bash
export JAVA_HOME="D:/Dev/JDK-17" ANDROID_HOME="D:/Dev/Android/SDK"
./gradlew assembleRelease
# 产物:app/build/outputs/apk/release/app-release.apk
adb install -r app/build/outputs/apk/release/app-release.apk
```
> `release` 复用 `debug` 签名配置(`signingConfigs.getByName("debug")`),适合个人发布到 GitHub Release;正式商店上架前需替换为独立的 release keystore。
## 架构 ## 架构
### 核心数据流 ### 核心数据流
@@ -67,8 +78,9 @@ NotifyListenerService (系统通知入口)
| `store/SettingsStore.kt` | Bark 服务器列表、全局开关、广告关键词等。`MutableStateFlow` + DataStore。 | | `store/SettingsStore.kt` | Bark 服务器列表、全局开关、广告关键词等。`MutableStateFlow` + DataStore。 |
| `store/AppRulesStore.kt` | 黑/白名单模式 + 默认黑名单(系统 App + 三星剪贴板/键盘 + GMS)。 | | `store/AppRulesStore.kt` | 黑/白名单模式 + 默认黑名单(系统 App + 三星剪贴板/键盘 + GMS)。 |
| `ui/nav/AppNav.kt` | 4 个底部 Tab + 日志页。 | | `ui/nav/AppNav.kt` | 4 个底部 Tab + 日志页。 |
| `ui/screens/*.kt` | HomeScreen(首页统计 + 版本号)、AppManageScreen、FilterScreen、SettingsScreen、LogScreen。 | | `ui/theme/*` | 固定品牌配色(`Color.kt`)、自定义 `Typography``Type.kt`),`A2iTheme` 关闭动态取色、统一深浅色方案(`Theme.kt`。 |
| `ui/Components.kt` | `appVersionName(context)` 工具函数用于显示版本号。 | | `ui/screens/*.kt` | HomeScreen(品牌横幅 + 运行状态面板 + 统计指标)、AppManageScreen、FilterScreen、SettingsScreen、LogScreen。 |
| `ui/Components.kt` | 共享 UI 组件层:`ScreenTitle``SectionCard``SwitchRow``ClickRow``IconBox``StatusBadge``MetricBlock`,以及 `appVersionName(context)``drawableToImageBitmap(d)``isNotificationListenerEnabled(context)` 工具函数。 |
### 重要约定 ### 重要约定
@@ -86,3 +98,11 @@ NotifyListenerService (系统通知入口)
### 调试日志 ### 调试日志
`NotifyListenerService.handle()` 每次都会写一条 `ForwardLog``LogStore`(无论转发/过滤/失败),可在「日志」页查看最近 300 条。失败会自动加入 `pending` 队列,由 `RetryWorker` 后续重发。 `NotifyListenerService.handle()` 每次都会写一条 `ForwardLog``LogStore`(无论转发/过滤/失败),可在「日志」页查看最近 300 条。失败会自动加入 `pending` 队列,由 `RetryWorker` 后续重发。
## 版本与发布
- 当前版本:`versionCode = 3``versionName = "1.2.0"`(位于 `app/build.gradle.kts`)。改完代码记得同步递增。
- 远端仓库:`https://github.com/lsxf/a2i.git`,默认分支 `main`
- 提交策略:`.gitignore` 已排除 `app/build``.gradle``.kotlin``local.properties``.claude/``do.ps1`、截图与临时文件,**不要**提交它们。
- 发版流程:本地打 tag`git tag -a v1.2.0 -m "..."`)→ `git push origin v1.2.0` → 在 GitHub Releases 基于 tag 发布,并上传 `app-release.apk` 作为二进制附件。
- UI 现状:统一品牌科技感主题(固定品牌色 + 自定义 Typography + 共享组件层),深浅色双方案,关闭动态取色;新组件统一通过 `ui/Components.kt` 复用,避免各页面各拼一套样式。