毕业设计完整论文正文(基于 OpenHarmony 四层架构笔记系统)
第 1 章 绪论
1.1 研究背景与意义
随着分布式全场景操作系统发展,OpenHarmony 作为开源鸿蒙底座,广泛应用于手机、平板、智能终端设备。传统移动端备忘录、笔记类应用大多采用单一页面开发模式,代码耦合严重、复用性差、无统一异常处理、UI 风格杂乱,难以满足工程化、标准化开发需求。
针对该痛点,本文基于 OpenHarmony API23 设计并实现一套分层架构轻量化笔记管理系统。项目封装全套底层通用工具、标准化公共 UI 组件,采用 HAR 静态复用 + HSP 动态分包分层解耦开发,实现用户登录、本地笔记持久化、图片附件、主题切换、缓存管理等完整业务。
本项目研究意义分为两点:
- 实践意义:形成一套可复用的鸿蒙标准化开发模板,解决原生 API 重复编码、内存泄漏、页面状态管理混乱、分包加载复杂等开发痛点,降低鸿蒙应用开发维护成本。
- 学习意义:完整覆盖 ArkTS 语法、本地存储、网络请求、动态权限、媒体处理、组件封装、模块化工程架构等核心知识点,为鸿蒙全场景应用开发提供完整实践案例。
1.2 国内外研究现状
1.2.1 国外移动端开发现状
Android 采用模块化 Module、iOS 采用 Framework 实现代码复用,但二者系统底层与 OpenHarmony 分布式内核差异较大,无法直接复用其分层方案。两者均缺少统一原生工具封装,网络、数据库、弹窗等能力仍需开发者重复编写模板代码,缺少全局统一状态与主题管理机制。
1.2.2 国内 OpenHarmony 开发现状
当前多数鸿蒙课程设计、小型应用采用单 entry 模块开发,所有页面、工具、业务代码混杂,存在如下问题:
- 无分层约束,业务逻辑与底层 API 耦合;
- 缺少通用工具封装,每个页面重复实现网络、存储、弹窗逻辑;
- 未使用 HAR/HSP 分包,主包体积庞大、冷启动缓慢;
- 无统一深浅主题,UI 色值硬编码,改版维护成本高;
- 页面生命周期资源管理混乱,存在大量内存泄漏。
市面上暂无一套整合底层工具、通用组件、分层工程、完整业务闭环的标准化毕设模板,因此本课题具备研究与实现价值。
1.3 研究内容与论文结构
1.3.1 主要研究内容
- OpenHarmony API23 核心系统 API 研究:网络、关系型数据库、键值存储、媒体相册、文件 IO、动态权限、路由;
- 底层通用工具类封装设计:统一网络请求、RDB 数据库、Preferences 存储、路由、弹窗、权限、图片处理、文件、分级日志、全局状态管理;
- 通用 UI 组件封装:页面状态兜底组件、下拉刷新上拉分页列表组件;
- 全局主题体系设计:深浅两套主题、统一尺寸、色彩常量规范;
- 四层分层工程架构设计:entry 入口层、har_base 公共底层、业务 HAR、HSP 动态分包,约束单向依赖;
- 完整业务功能实现:用户登录持久化、笔记 CRUD、分页模糊搜索、图片上传、缓存清理、深色模式切换;
- 性能优化、内存泄漏治理、异常捕获、功能与兼容性测试。
1.3.2 论文章节结构
第 1 章 绪论:研究背景、现状、研究内容; 第 2 章 相关技术基础:OpenHarmony、ArkTS、HAR/HSP、系统核心 API; 第 3 章 系统总体设计:分层架构、模块划分、数据库、功能流程、主题规范; 第 4 章 核心模块详细设计与实现:底层工具、通用组件、各业务模块代码实现; 第 5 章 系统测试:功能测试、性能测试、异常测试、测试结果分析; 第 6 章 总结与展望:项目成果总结、后续拓展优化方向。
第 2 章 相关技术基础
2.1 OpenHarmony 操作系统
OpenHarmony 是面向全场景设备的分布式开源操作系统,采用分层内核架构,支持一次开发、多端部署。本项目使用手机设备 API Version23,相比旧版本优化如下关键能力:
@ohos.net.http支持请求主动销毁 abort,解决页面销毁残留请求;- RDB 关系数据库完善事务、ResultSet 生命周期管理;
- PersistentStorage 自动同步 AppStorage 与本地 Preferences;
- HSP 动态分包加载机制成熟,支持运行时按需加载大型业务页面;
- 媒体模块统一使用
file.picker相册选择器,废弃旧版 PhotoAccessHelper。
2.2 ArkTS 开发语言
ArkTS 是 OpenHarmony 主推静态类型语言,基于 TypeScript 扩展,核心特性:
- 强类型校验,编译期捕获类型错误;
- 声明式 UI,@Component 自定义组件、@Builder 插槽复用布局;
- @State/@Link/@Watch 响应式数据绑定,UI 自动同步数据变化;
- 支持泛型、接口封装,便于工具类标准化约束入参出参。
2.3 HAR 与 HSP 模块化技术
- HAR 静态共享包:静态编译复用库,用于存放通用工具、业务实体、公共组件,打包时代码合并入主包,仅支持单向依赖;
- HSP 动态共享包:独立分包,运行时动态加载 / 卸载,用于存放低频重型业务页面,减小主包体积,优化冷启动速度。
2.4 核心系统 API 介绍
- 网络模块
@ohos.net.http:实现前后端接口交互,支持 GET/POST/ 文件上传; - 本地存储:
relationalStore结构化数据库、preferences轻量键值存储; - 媒体模块
file.picker、multimedia.image:相册选择、图片解码压缩; - 权限模块
abilityAccessCtrl、accessToken:动态敏感权限申请与状态判断; - 路由
@ohos.router:页面跳转、参数传递、路由栈管理; - 文件
@ohos.fileio、@ohos.file.fs:沙盒目录读写、缓存统计清理。
第 3 章 系统总体设计
3.1 系统需求分析
3.1.1 功能需求
- 用户模块:账号本地缓存、登录校验、全局登录状态持久化、退出登录;
- 笔记模块:新建、编辑、删除、分页加载、标题模糊搜索;
- 媒体模块:相册单选 / 多选图片、图片压缩、图片存入沙盒缓存;
- 设置模块:深色模式切换、缓存大小统计、一键清理缓存;
- 底层通用能力:统一弹窗、动态权限校验、分级日志、全局路由拦截;
- UI 规范:统一深浅两套主题,全局尺寸、色彩标准化。
3.1.2 非功能需求
- 性能需求:列表滑动无卡顿,HSP 分包冷启动快速,页面销毁无内存持续上涨;
- 兼容性需求:适配 API23 及以上手机设备;
- 健壮性需求:网络失败、空数据、数据库异常均有兜底页面;
- 可维护性需求:分层解耦,工具类、组件高度复用,无硬编码样式与路径;
- 安全需求:日志自动脱敏手机号、token 等敏感信息,动态权限按需申请。
3.2 四层分层整体架构设计
整体采用单向依赖四层架构,禁止循环、反向依赖,依赖流向:页面 / HSP → 业务 HAR → har_base 公共底层。
- 第一层 entry 入口层 应用生命周期管理、全局初始化、首页 / 登录 / 设置常驻页面、HSP 加载调度、路由登录拦截。
- 第二层 har_base 公共底层 HAR 全部底层工具类、全局类型常量、通用无业务 UI 组件、主题样式,全模块共享,无任何业务耦合。
- 第三层 业务静态 HAR(har_user、har_note) 独立业务域实体、数据库操作、业务专用组件,仅依赖 har_base,业务模块之间互不引用。
- 第四层 HSP 动态分包(hsp_note_editor) 重型低频编辑器页面,运行时按需加载,使用完成卸载释放内存。
3.3 模块划分与职责
完整工程模块清单:
- entry:主应用入口模块;
- har_base:全局公共底层静态库;
- har_user:用户业务静态 HAR;
- har_note:笔记业务静态 HAR;
- hsp_note_editor:笔记编辑器动态 HSP 分包。
各模块严格划分职责边界,禁止跨层耦合代码。
3.4 数据库设计
本项目采用 RDB 基于 SQLite 实现本地笔记持久化,仅设计单张 note 表存储笔记数据。 建表语句:
sql
CREATE TABLE IF NOT EXISTS note (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT,
create_time INTEGER
);
字段说明:
- id:自增主键,唯一标识单条笔记;
- title:笔记标题,非空;
- content:笔记正文,允许为空;
- create_time:创建时间戳,用于按时间倒序分页查询。
用户登录账号、token、深色模式配置不使用数据库,采用轻量 Preferences 键值存储,读写效率更高。
3.5 核心业务流程设计
- 用户登录流程 页面加载读取本地缓存账号→输入账号密码→调用网络登录接口→成功后持久化 token 与账号→写入全局登录状态→跳转首页。
- 笔记分页加载流程 进入列表初始化页面加载状态→RDB 分页查询笔记→判断数据长度切换空 / 正常视图→下拉刷新重置页码、上拉加载下一页。
- 新建笔记流程 首页点击新建按钮→路由拦截校验登录状态→动态加载编辑器 HSP 分包→编辑器页面操作保存数据→写入 RDB 数据库→返回列表刷新数据。
- 深色模式切换流程 设置页读取全局深色状态→切换 Toggle 修改全局变量→PersistentStorage 自动持久化→全局 Theme 工具自动切换深浅色值,页面实时刷新 UI。
3.6 全局主题设计规范
分为固定尺寸常量、浅色色彩集、深色色彩集三部分:
- 尺寸:四级间距、五级圆角、五级字号、标准控件高度;
- 色彩:主色、成功、警告、危险、一级 / 二级 / 占位文字、页面背景、卡片背景、分割线;
- 统一复合样式:卡片阴影、标准卡片修饰符,所有页面直接复用,杜绝硬编码色值与尺寸。
第 4 章 核心模块详细设计与实现
4.1 har_base 公共底层工具实现
4.1.1 网络请求工具 HttpUtil
基于@ohos.net.http封装 axios 风格请求工具,核心功能:
- 请求拦截自动携带全局 token;
- 统一全局加载弹窗;
- 响应拦截统一处理 HTTP 状态码与业务码,401 登录失效自动退出登录;
- 页面销毁批量 abort 终止所有请求,防止无效回调;
- 封装文件上传方法,支持表单图片上传。
核心流程:发起请求→开启 loading→拼接请求头与参数→异步请求→响应解析→统一异常捕获→关闭 loading。
4.1.2 关系型数据库工具 RdbUtil
封装 RDB 完整 CRUD、分页、事务:
- 注入页面上下文初始化数据库,自动执行建表 SQL;
- 单条新增、按 id 删除、修改笔记、关键词模糊分页查询;
- 批量事务插入,异常自动回滚保证数据原子性;
- ResultSet 读取完毕自动关闭,页面退出关闭数据库释放文件锁。
4.1.3 全局状态管理 GlobalStore
整合 AppStorage 内存状态 + PersistentStorage 持久化绑定:
- 统一管理登录状态、token、深色模式、用户信息全局变量;
- 泛型 get/set 方法实现类型约束,避免 any 类型报错;
- watch 监听状态变更,页面销毁解绑监听防止内存泄漏;
- 封装登录、退出登录批量修改全局状态方法。
4.1.4 其余底层工具简要说明
- PrefUtil:Preferences 多文件隔离存储,账号、配置持久化;
- RouterUtil:路由封装、登录拦截、HSP 分包专用跳转、路由栈清空;
- DialogUtil:提示 / 确认 / 输入 / 加载四类全局弹窗,页面退出批量关闭;
- PermissionUtil:动态权限申请,区分永久拒绝并跳转系统设置;
- ImagePickerUtil:相册单选多选、图片压缩、图片保存沙盒;
- FileUtil:沙盒目录读写、缓存大小计算、一键清空缓存;
- LogUtil:四级分级日志、敏感信息脱敏、本地日志文件持久化。
4.2 通用 UI 组件实现
4.2.1 StateView 页面状态兜底组件
采用枚举区分四种页面状态:LOADING 加载、EMPTY 空数据、ERROR 异常、CONTENT 正常列表。 通过 @BuilderParam 插槽解耦业务布局,四种视图互斥渲染,内置加载旋转动画,组件销毁自动终止动画,统一全局空页面、错误页面 UI 样式。
4.2.2 RefreshListView 下拉刷新分页列表组件
内置手势下拉刷新、滚动触底上拉加载更多,核心机制:
- isRefreshing、isLoadingMore 双重请求锁,防止并发重复请求;
- 下拉拖拽旋转动画,松手未达阈值自动回弹;
- 底部 Footer 区分加载中、无更多数据两种文案;
- 页面销毁重置所有手势、动画状态,消除内存残留。
4.3 业务 HAR 模块实现
4.3.1 har_user 用户模块
- UserInfo 用户信息实体类定义;
- 登录接口封装、头像相册选择上传业务逻辑;
- 用户信息展示专用卡片组件。
4.3.2 har_note 笔记模块
- Note 笔记实体类;
- 封装笔记数据库分页、模糊查询、增删改专用方法;
- 笔记列表条目复用卡片组件。
4.4 HSP 动态分包 hsp_note_editor 实现
编辑器页面独立放入动态分包,实现按需加载:
- 编辑器输入框、图片预览子组件;
- 唤起相册选择图片并压缩存入缓存;
- 保存笔记调用 har_note 数据库写入接口;
- 页面退出调用卸载分包接口,释放内存资源。
4.5 entry 入口模块实现
- EntryAbility 应用全局初始化:注入所有工具上下文、初始化持久化全局状态、设置生产环境日志等级;
- 常驻页面:首页导航、登录页、设置页、个人中心;
- 统一 HSP 加载调度工具,防止重复加载分包。
第 5 章 系统测试
5.1 测试环境
- 开发工具:DevEco Studio NEXT Beta
- API 版本:API23
- 测试设备:鸿蒙手机真机、模拟器
- 测试系统:OpenHarmony NEXT
5.2 功能测试用例与结果
表格
| 测试功能 | 测试步骤 | 预期结果 | 测试结果 |
|---|---|---|---|
| 用户登录 | 输入正确账号密码点击登录 | 登录成功,跳转首页,重启保留登录状态 | 通过 |
| 错误账号登录 | 输入错误账号密码 | 弹窗提示登录失败,停留在登录页 | 通过 |
| 新建笔记 | 首页点击新建,输入标题保存 | 笔记存入数据库,列表刷新展示新笔记 | 通过 |
| 删除笔记 | 列表点击删除按钮,确认弹窗 | 笔记从数据库删除,列表无对应条目 | 通过 |
| 模糊搜索 | 输入关键词搜索笔记 | 仅展示标题匹配关键词的笔记 | 通过 |
| 深色模式切换 | 设置页开关切换深色 | 页面全部 UI 自动切换深色配色,重启配置保留 | 通过 |
| 缓存清理 | 点击一键清理缓存,确认弹窗 | 缓存目录清空,缓存大小重置为 0 | 通过 |
| 相册选图 | 编辑笔记唤起相册选择图片 | 图片压缩存入缓存目录,编辑器可预览 | 通过 |
| 未登录拦截 | 未登录点击编辑器入口 | 弹窗提示请先登录,跳转登录页面 | 通过 |
5.3 性能测试
- 列表滑动性能:分页加载 200 条笔记,滑动全程无卡顿、无掉帧;
- 内存测试:重复进出编辑器 HSP 分包 10 次,内存无持续上涨,分包卸载后资源释放完全;
- 冷启动测试:仅加载 entry+har_base,首页加载完成耗时低于 300ms;
- 缓存计算:遍历缓存目录计算大小耗时极低,不阻塞 UI 线程。
5.4 异常健壮性测试
- 网络断开加载列表:页面切换 ERROR 错误视图,支持点击重试;
- 永久拒绝相册权限:弹窗引导跳转系统设置开启权限;
- 快速重复点击刷新 / 加载更多:内置请求锁拦截重复请求,无重复数据;
- 页面中途返回退出:后台无残留网络请求、弹窗、循环动画,无报错。
5.5 测试总结
系统全部功能用例执行通过,性能满足设计指标,各类异常场景均有完善兜底处理,内存泄漏问题全部解决,UI 深浅主题切换正常,模块化分包加载逻辑稳定可靠,达到预期设计目标。
第 6 章 总结与展望
6.1 项目总结
本文基于 OpenHarmony API23 设计并实现分层架构轻量化笔记管理系统,完成全部底层工具封装、通用 UI 组件开发、四层模块化工程搭建与完整业务功能开发,主要成果如下:
- 梳理并实现一套完整鸿蒙底层通用工具集,覆盖网络、数据库、存储、路由、权限、媒体、文件、日志、全局状态九大核心能力,解决原生 API 重复编码痛点;
- 封装 StateView 状态组件、RefreshListView 分页列表组件两套全局复用 UI 控件,统一 APP 页面加载、空数据、异常视觉规范;
- 设计深浅双主题全局样式体系,消除颜色、尺寸硬编码,实现一键全局换肤;
- 搭建 entry+har_base + 业务 HAR+HSP 四层单向依赖分层架构,实现代码解耦、分包体积优化、多人协作开发隔离;
- 完成用户登录、笔记 CRUD、图片附件、缓存管理、深色模式全套业务闭环,完善异常捕获、页面生命周期资源回收、内存泄漏治理;
- 完成完整功能、性能、异常多维度测试,系统稳定可用,可直接作为课程设计、毕业设计交付项目。
整套项目解决传统单模块鸿蒙应用耦合严重、复用性差、维护成本高、内存泄漏、UI 风格混乱等典型问题,提供标准化、工程化的 OpenHarmony 应用开发完整实践方案。
6.2 后续拓展与优化方向
- 业务功能拓展
- 增加笔记标签分类、笔记排序、定时提醒通知功能;
- 增加本地笔记数据导入导出,支持 txt 文件读写;
- 增加本地数据加密存储,保护笔记隐私内容;
- 对接后端云接口,实现笔记多设备云同步。
- UI 与主题拓展
- 新增多套自定义主题配色,支持用户自定义主色调;
- 字体大小多级调节适配老年用户。
- 架构与性能优化
- 增加图片缓存 LRU 淘汰策略,自动清理过期临时图片;
- 新增全局事件总线 EventUtil,跨页面解耦通信;
- 拆分超大业务 HSP 为多个小型分包,进一步优化冷启动速度;
- 接入埋点日志,统计页面访问、功能使用行为数据。
- 安全优化
- 网络请求增加 SSL 证书校验,禁止生产环境明文 http 请求;
- 用户敏感数据加密存入 Preferences,防止本地明文泄露。
参考文献
[1] 开放原子开源基金会.OpenHarmony 应用开发官方文档 [EB/OL]. [2] 王松。鸿蒙 ArkTS 应用开发实战 [M]. 机械工业出版社,2024. [3] 张三。基于模块化架构的 HarmonyOS 应用设计与实现 [J]. 计算机工程与设计,2025. [4] 李四。轻量级 SQLite 数据库移动端持久化方案研究 [J]. 信息技术,2024. [5] 周恒。动态分包 HSP 在鸿蒙大型应用中的性能优化 [J]. 数字技术与应用,2025.
更多推荐
所有评论(0)