- 语言规范: 严格遵循 Kotlin 官方编码规范。
- Android 规范:
- 遵循 Modern Android Development (MAD) 指南。
- UI 框架: 全面使用 Jetpack Compose (+ Material3/Material You/Material Express),支持 Pixel
动态取色。
- 架构: MVVM (ViewModel + StateFlow + Repository)。
- 依赖注入: 使用 Koin (Koin-Android, Koin-Compose)。
- 兼容性: MinSDK 为 31 (Android 12),TargetSDK 为 Latest (36)。
- 功能特性规范:
- 单一数据源:
- 使用
TrafficStats配合ConnectivityManager。 - 核心逻辑: 通过
ConnectivityManager遍历物理网络接口 (Wi-Fi, Cellular, Ethernet),排除 VPN 虚拟接口 (避免流量双重统计),直接读取TrafficStats数据。 - 严格禁止: 使用 Root 或 Shizuku 权限进行非必要的底层操作。
- UI 呈现:
- 首次启动不开启显示,由用户选择。
- 通知栏动态图标 (Notification Icon): 实时绘制 Bitmap。双向模式下合并展示总量。
- 悬浮窗 (Floating Window): 使用 Compose 挂载到 WindowManager,支持独立开关。
- 快速设置 (Quick Settings): 提供 TileService 支持系统下拉栏快捷开关。
- 使用
- 单一数据源:
- 代码结构:
- 单个文件原则上不超过 1000 行。
- Service 分离: 网速监听核心逻辑需运行在前台服务 (Foreground Service, type=
dataSync) 中。 - 避免在 Activity 中编写业务逻辑。
- 注释:
- 使用中文编写清晰的 KDoc 与行内注释。
- 核心算法逻辑(如网络接口过滤)必须添加详细注释说明。
- 编译检查:
- 变更代码后,必须执行
./gradlew :app:assembleDebug确保编译通过。
- 变更代码后,必须执行
- Lint 检查:
- 运行
./gradlew lint检查潜在的代码质量问题。
- 运行
- 功能验证:
- 重点测试开启 VPN 场景下的网速统计是否准确(不应包含 VPN 虚拟网卡流量)。
- 必须在真机(Pixel 设备优先)上测试。
- 命令行执行
./gradlew :app:assembleDebug。 - 确认无编译错误,且
libs.versions.toml中无过时警告。
文档与记忆采用 Markdown 格式,存放于 .agentdocs/ 及其子目录下。
索引文档:.agentdocs/index.md
prd/- 产品与需求prd/requirements.md- 核心功能需求 (PixelMeter 功能清单)
architecture/- 架构与技术细节architecture/data-source-strategy.md- 混合数据源策略 (Shizuku vs Standard API)architecture/service-lifecycle.md- 前台服务保活与 Android 14+ 适配
ui/- 界面规范ui/design-system.md- Material3 主题与悬浮窗设计规范
workflow/- 任务流文档 (按标准格式命名)
- 项目名称: PixelMeter
- 设备支持:
- 核心目标: Google Pixel 系列 (Android 10+)。
- 兼容目标: 运行原生/类原生 Android (AOSP) 的设备。
- SDK 版本:
- MinSDK: 31 (Android 12)。
- CompileSDK/TargetSDK: 36 (Android 16)。
- 关键技术决策:
- DI: Koin (轻量级,适合本工具)。
- Settings UI:
me.zhanghai.compose.preference+com.github.skydoves:colorpicker-compose。- Browser: Chrome Custom Tabs (CCT) 用于集成 Cloudflare 测速。
- 需求澄清: 当需求不明确时(例如具体的过滤接口名称、悬浮窗的吸附逻辑),先提问澄清。
- 方案分析: 对于用户提出的设想,需结合 Android 系统限制(特别是后台限制)进行分析。
- 分阶段实施:
- 基础架构搭建 (Koin, Compose, Navigation)。
- 网速监听实现 (TrafficStats + ConnectivityManager)。
- UI 层实现 (通知栏绘图、悬浮窗)。
- CCT 集成与设置页完善。
- 风险记录: 涉及系统底层 (如读取
/proc) 或保活策略修改时,需在文档中记录潜在的兼容性风险。
- 在任务完成呈现最终消息前,必须进行以下任务回顾:
- 检查是否产生新的可复用组件,并更新架构文档。
- 检查
.agentdocs/下的文档是否需要更新。 - 确认
libs.versions.toml中的依赖版本是否为最新稳定版。
- 与用户的所有回复与沟通,文档与代码注释均使用中文。
- 涉及专业术语 (如 "Interface", "Tun", "Binder", "Overlay") 时保留英文,必要时附带中文解释。