一、立项背景和目标
立项背景:随着智能设备普及,用户对设备使用状态的感知需求增强,但现有工具难以直观、实时地展示设备关键时间数据(如亮屏时长、总运行时长及使用效率)。用户缺乏对自身设备使用习惯的有效认知,无法针对性优化使用行为。
目标:开发“屏幕时光”小工具,通过实时采集并展示设备的系统时间、亮屏使用时长(不含深度睡眠)、总运行时长(含深度睡眠)及亮屏占比等核心数据,帮助用户清晰掌握设备使用状态,培养更合理的设备使用习惯,提升数字健康管理能力。
二、软件功能和核心功能模块介绍
1. 核心功能概述
软件以“实时时间监控”为核心,提供设备使用数据的可视化展示、交互分析及个性化引导,主要功能包括:
实时数据展示:系统当前时间、亮屏时长、总运行时长、使用效率(亮屏占比)。
动态背景适配:根据设备总运行时长自动切换背景图片(1天/1周/1月/1季度/1年对应不同背景)。
交互式提示:点击时间卡片(亮屏/总运行时间)弹出使用分析提示(含表情图标与建议);支持随机趣味提示。
辅助功能:版本信息查询、更新检查、隐私政策跳转、意见反馈入口。
2. 核心功能模块
主界面(Index)
核心展示与交互入口,包含时间卡片、效率统计、详情表格及刷新功能。
时间与提示模型(timeInterface)
定义数据结构(如TimeDetailItem、TimeRange)与配置(如动画参数、提示池)。
时间工具类(TimeUtils)
封装时间获取、格式化、背景匹配等核心逻辑。
防重复点击(ClickPrevention)
限制短时间内重复操作(如卡片点击、按钮提交),避免误触。
三、业务流程和功能路径描述
1. 主流程:应用启动与实时监控
启动阶段:EntryAbility(应用入口)初始化,加载主页面(pages/Index)。
数据初始化:Index的aboutToAppear调用updateData,通过TimeUtils获取系统时间、亮屏时长(getUpTime_10_Plus/getRealActiveTime_9)、总运行时长(getUpTime_10_Plus/getRealTime_9),并更新UI。
实时刷新:通过setInterval每秒触发updateData,保持时间数据实时性。
2. 核心交互路径
时间卡片点击(亮屏/总运行时间):
用户点击卡片→handleScreenTimeClick/handleTotalTimeClick触发。
防重复点击校验(ClickPrevention.isFastClick)→通过后调用showTotalTimeTip。
showTotalTimeTip根据卡片类型(亮屏/总运行)计算日均使用时长或总运行时长,从tipPools选取提示文本。
触发入场动画(animateTipIn)→显示带进度条的提示框
一、整体框架与设计思路
整体框架:采用单页面应用(SPA)架构,以EntryAbility为应用入口,基于HarmonyOS的UIAbility生命周期管理页面加载;核心功能围绕Index(主界面)展开,辅以AboutPage(功能入口)、AboutAppPage(版本信息)等辅助页面,形成“主监控+辅助功能”的分层结构。
设计思路:
数据驱动:通过TimeUtils封装时间数据采集与格式化逻辑,实时更新UI状态(如@State修饰的时间字符串、时长数据),确保数据展示的实时性与准确性。
模块化分层:
入口层:EntryAbility负责应用初始化与页面加载(onWindowStageCreate加载pages/Index)。
视图层:Index、AboutPage等组件通过@Component装饰器定义UI结构,使用Stack、Column等布局组件实现背景与内容的层级叠加。
逻辑层:TimeUtils(时间处理)、ClickPrevention(防重复点击)封装核心业务逻辑,降低耦合。
模型层:timeInterface(接口定义)、tipPools(提示文本库)统一管理数据结构与静态资源,支持扩展。
用户体验优化:
动态背景:根据设备总运行时长自动切换背景图,增强视觉反馈。
交互动画:提示框的透明度、缩放、位移动画(animateTo)提升操作反馈。
防误触:通过ClickPrevention限制短时间重复点击,避免误操作。