项目一:BillRecord — 自动记账助手 (核心项目)
一款基于 Android AccessibilityService 的自动化支付记账工具,自动识别并记录微信/支付宝每一笔交易流水。
技术亮点:
- 无障碍服务深度定制:监控微信 (tencent.mm) 和支付宝的支付成功页面,通过 TYPE_WINDOW_STATE_CHANGED / TYPE_WINDOW_CONTENT_CHANGED 事件触发,采用 DFS 节点遍历 + 关键词搜索 + 多窗口迭代 + ML Kit OCR 的五层文本提取策略,确保不同 ROM 下的识别成功率
- ML Kit 离线 OCR 中文识别:针对 Flyme/Meizu 等 WebView 不暴露文本的特殊机型,通过反射调用系统级 takeScreenshot() API 截图,经对比度增强后送入 ML Kit 中文文字识别模型,支持多轮重试(1000/3000/5000/7000ms 延迟),实现 WeChat 支付页面的文字提取
- 悬浮窗交互:TYPE_APPLICATION_OVERLAY 前台服务弹出确认卡片,带防重复检测(金额+时间+对方去重),支持覆盖更新
- 性能优化:Room 本地持久化(4表)、CalendarView 月视图日花费展示(SpannableString/GradientDrawable 缓存复用,bind 热路径零分配)
- 节假日数据:OkHttp 请求 timor.tech API,实时获取调休/补班信息并标记日历
技术栈: Java 11 / Room 2.6.1 / ML Kit OCR / OkHttp 4.12 / Material 3 / Kizitonwose CalendarView