1、立项原因,旨在解决什么问题
移动设备重度使用已成为普遍困扰:用户难以感知自己每天在短视频、游戏、社交类应用上投入的真实时长,仅靠主观意志力难以克制,而系统自带的屏幕时间功能普遍存在"一键跳过""随手关闭"等弱约束问题,缺乏强制力与仪式感,导致自律失败。本项目立项即为解决"时间无感知、约束无强度、戒断无路径"三大痛点,为用户提供一套可量化、可强制、可回溯的数字自律解决方案。
2、行业场景、业务背景
面向学生群体(备考自习、课堂专注)、职场人士(深度工作、会议专注)、家长(未成年人用机管理)三类核心场景。随着《未成年人网络保护条例》落地与"数字极简主义"理念普及,个人时间管理类工具需求持续增长。本项目对标 Forest、番茄 ToDo、Screen Time 等产品,聚焦国产 Android ROM(MIUI/HyperOS/EMUI 等)环境下的强约束锁机能力,补足同类产品在国内机型上拦截易失效、后台易被杀的工程短板。
1、项目有哪些具体功能模块
本项目采用四大主 Tab(锁机 / 习惯 / 数据 / 我的)架构,包含以下模块:
(1)应用锁机模块:支持单应用手动锁定、按日/周/月/年周期设置使用时长上限并自动锁定;提供"专注锁机"(指定时长内锁定全部应用)与"全局监督"(每日总时长上限,超限锁定全部应用)两级全局策略;支持定时锁机计划,可按星期重复、支持跨午夜时间段。
(2)解锁挑战模块:内置密码解锁、使用时长挑战解锁等多种解锁方式,并提供带冷静期的"应急退出"通道,兼顾强制力与可用性。
(3)白名单模块:允许将电话、短信、地图等必要应用加入白名单,锁机期间不受限制;桌面启动器自动豁免,避免锁死设备。
(4)数据统计模块:基于系统使用情况统计接口聚合每日/每周应用使用时长,提供应用维度排行榜与自绘柱状趋势图;服务按 10 分钟粒度落库历史快照,突破系统原始数据仅保留数日的限制,支持长周期回溯。
(5)习惯打卡模块:支持创建习惯、设定每日目标次数、多次打卡,并自动统计连续坚持天数(Streak)。
(6)设置与引导模块:使用统计授权、悬浮窗授权、无障碍授权、电池优化白名单、开机自启等权限的状态检测与一键跳转引导,并提供图文帮助页。
2、项目的主要功能描述
核心能力是"监测—判定—拦截—统计"闭环:前台常驻服务持续轮询前台应用,由统一的锁机策略引擎按"白名单 → 桌面 → 全局监督 → 专注锁机 → 定时计划 → 手动/时限"的优先级链路判定是否放行;命中则立即拉起全屏锁定界面并开启系统任务固定,阻断 Home 键绕过;同时通过无障碍服务监听窗口切换事件作为双通道兜底,显著提升国产 ROM 上的拦截成功率。
1、"我"负责哪些具体任务
本人独立完成从需求定义、架构设计、全量编码到缺陷治理的全流程,包括:数据库表结构与版本迁移设计、前台保活服务与锁机策略引擎实现、全屏锁定与任务固定拦截方案落地、使用统计数据聚合算法编写、自定义图表控件绘制,以及后续三轮系统性代码审查与缺陷修复(累计定位并修复 25 处以上缺陷,涵盖跨午夜统计数据丢失、线程池泄漏、主线程 ANR、Activity 任务栈误清空等问题)。
2、项目使用了哪些技术栈、架构、实现上亮点、难点
技术栈:Java 8 + Android SDK 34(minSdk 24),AndroidX / Material Design 3,ViewPager2 + BottomNavigationView + RecyclerView 构建界面,Room 2.6.1(含 1→2→3→4 四版本手写 Migration,保证升级不丢数据)持久化,UsageStatsManager 采集用量,AccessibilityService 监听窗口变化,前台 Service + AlarmManager 保活与周期调度,BroadcastReceiver 实现开机自启与周期重置,自定义 View 实现趋势图表,全局共享线程池统一调度 IO 任务。
实现亮点:
(1)双通道拦截架构——前台服务轮询与无障碍事件监听互为冗余,单通道失效时仍可触发锁定。
(2)采用全屏 Activity + startLockTask 任务固定替代传统悬浮窗遮罩,解决了 MIUI / HyperOS 上悬浮窗 addView 成功但内容不被实际合成、导致锁定界面"隐形失效"的 ROM 兼容性难题。
(3)为锁定页配置独立 taskAffinity,使其清任务栈时不波及主应用栈,避免用户正常使用被意外清空。
(4)自建每日用量快照表并实现跨午夜补偿写入,解决系统用量
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论