# INP2P Android 客户端开工计划(MVP → V1) ## 目标 在不改动核心服务端协议的前提下,先交付“可运维、可观察、可控风险”的安卓客户端。 ## 分阶段路线 ### Phase 0:开工准备(1-2 天) - 明确 API 契约(当前后端已具备) - 固化角色与权限矩阵(admin/operator/apikey) - 建立 Android 项目骨架(Kotlin + Compose + Retrofit + Room + WorkManager) - 建立日志/崩溃/埋点规范 ### Phase 1:MVP(5-7 天) - 登录/会话管理(`/api/v1/auth/login`) - 节点列表与状态(`/api/v1/nodes`) - 手动 connect(`/api/v1/connect`) - 远程推配置(`/api/v1/nodes/apps`) - 节点踢下线(`/api/v1/nodes/kick`,仅 admin/operator) - SDWAN 基础配置只读 + 编辑(按权限) - 审计查看(admin only,`/api/v1/admin/audit`) ### Phase 2:增强(7-10 天) - 设置页:高级开关联动(`/api/v1/admin/settings`) - 断线重连与 Token 续期提示 - 更完整的错误态/空态/离线态 - 细化操作确认(高风险动作二次确认) ### Phase 3:V1(后续) - VpnService + TUN 数据面接入 - 网络切换稳定性(Wi-Fi/4G) - 前台服务保活与电量策略优化 ## MVP 范围边界(本次明确) - ✅ 做:控制面(鉴权、查询、下发) - ❌ 不做:首版直接上 TUN 全数据面 ## 技术选型(建议) - 语言:Kotlin - UI:Jetpack Compose - 网络:Retrofit + OkHttp - 本地存储:Room + EncryptedSharedPreferences - 并发:Kotlin Coroutines + Flow - 任务调度:WorkManager - 最低版本:Android 8.0+ ## 核心风险与对策 1. Token 过期导致操作失败 - 对策:统一 401 拦截,跳登录;关键动作前校验登录态。 2. 移动网络切换导致请求失败 - 对策:重试策略(指数退避)、弱网提示、幂等操作提示。 3. 高危动作误触(kick/connect/sdwan) - 对策:二次确认 + 审计可追踪 + 角色按钮可见性控制。 4. 后端字段变动影响兼容 - 对策:DTO 宽容解析 + 版本检查 + 契约文档锁定。 ## 验收标准(MVP) - 能用 admin/operator 成功登录并执行对应权限动作 - apikey 仅可读,写操作被正确拒绝 - 关键操作成功/失败信息明确可见 - 审计与后端一致(至少覆盖 connect/kick/apps/sdwan)