当前位置: 首页 > news >正文

毕业设计完整论文正文(基于 OpenHarmony 四层架构笔记系统)

第 1 章 绪论

1.1 研究背景与意义

随着分布式全场景操作系统发展,OpenHarmony 作为开源鸿蒙底座,广泛应用于手机、平板、智能终端设备。传统移动端备忘录、笔记类应用大多采用单一页面开发模式,代码耦合严重、复用性差、无统一异常处理、UI 风格杂乱,难以满足工程化、标准化开发需求。

针对该痛点,本文基于 OpenHarmony API23 设计并实现一套分层架构轻量化笔记管理系统。项目封装全套底层通用工具、标准化公共 UI 组件,采用 HAR 静态复用 + HSP 动态分包分层解耦开发,实现用户登录、本地笔记持久化、图片附件、主题切换、缓存管理等完整业务。

本项目研究意义分为两点:

  1. 实践意义:形成一套可复用的鸿蒙标准化开发模板,解决原生 API 重复编码、内存泄漏、页面状态管理混乱、分包加载复杂等开发痛点,降低鸿蒙应用开发维护成本。
  2. 学习意义:完整覆盖 ArkTS 语法、本地存储、网络请求、动态权限、媒体处理、组件封装、模块化工程架构等核心知识点,为鸿蒙全场景应用开发提供完整实践案例。

1.2 国内外研究现状

1.2.1 国外移动端开发现状

Android 采用模块化 Module、iOS 采用 Framework 实现代码复用,但二者系统底层与 OpenHarmony 分布式内核差异较大,无法直接复用其分层方案。两者均缺少统一原生工具封装,网络、数据库、弹窗等能力仍需开发者重复编写模板代码,缺少全局统一状态与主题管理机制。

1.2.2 国内 OpenHarmony 开发现状

当前多数鸿蒙课程设计、小型应用采用单 entry 模块开发,所有页面、工具、业务代码混杂,存在如下问题:

  1. 无分层约束,业务逻辑与底层 API 耦合;
  2. 缺少通用工具封装,每个页面重复实现网络、存储、弹窗逻辑;
  3. 未使用 HAR/HSP 分包,主包体积庞大、冷启动缓慢;
  4. 无统一深浅主题,UI 色值硬编码,改版维护成本高;
  5. 页面生命周期资源管理混乱,存在大量内存泄漏。

市面上暂无一套整合底层工具、通用组件、分层工程、完整业务闭环的标准化毕设模板,因此本课题具备研究与实现价值。

1.3 研究内容与论文结构

1.3.1 主要研究内容
  1. OpenHarmony API23 核心系统 API 研究:网络、关系型数据库、键值存储、媒体相册、文件 IO、动态权限、路由;
  2. 底层通用工具类封装设计:统一网络请求、RDB 数据库、Preferences 存储、路由、弹窗、权限、图片处理、文件、分级日志、全局状态管理;
  3. 通用 UI 组件封装:页面状态兜底组件、下拉刷新上拉分页列表组件;
  4. 全局主题体系设计:深浅两套主题、统一尺寸、色彩常量规范;
  5. 四层分层工程架构设计:entry 入口层、har_base 公共底层、业务 HAR、HSP 动态分包,约束单向依赖;
  6. 完整业务功能实现:用户登录持久化、笔记 CRUD、分页模糊搜索、图片上传、缓存清理、深色模式切换;
  7. 性能优化、内存泄漏治理、异常捕获、功能与兼容性测试。
1.3.2 论文章节结构

第 1 章 绪论:研究背景、现状、研究内容; 第 2 章 相关技术基础:OpenHarmony、ArkTS、HAR/HSP、系统核心 API; 第 3 章 系统总体设计:分层架构、模块划分、数据库、功能流程、主题规范; 第 4 章 核心模块详细设计与实现:底层工具、通用组件、各业务模块代码实现; 第 5 章 系统测试:功能测试、性能测试、异常测试、测试结果分析; 第 6 章 总结与展望:项目成果总结、后续拓展优化方向。

第 2 章 相关技术基础

2.1 OpenHarmony 操作系统

OpenHarmony 是面向全场景设备的分布式开源操作系统,采用分层内核架构,支持一次开发、多端部署。本项目使用手机设备 API Version23,相比旧版本优化如下关键能力:

  1. @ohos.net.http支持请求主动销毁 abort,解决页面销毁残留请求;
  2. RDB 关系数据库完善事务、ResultSet 生命周期管理;
  3. PersistentStorage 自动同步 AppStorage 与本地 Preferences;
  4. HSP 动态分包加载机制成熟,支持运行时按需加载大型业务页面;
  5. 媒体模块统一使用file.picker相册选择器,废弃旧版 PhotoAccessHelper。

2.2 ArkTS 开发语言

ArkTS 是 OpenHarmony 主推静态类型语言,基于 TypeScript 扩展,核心特性:

  1. 强类型校验,编译期捕获类型错误;
  2. 声明式 UI,@Component 自定义组件、@Builder 插槽复用布局;
  3. @State/@Link/@Watch 响应式数据绑定,UI 自动同步数据变化;
  4. 支持泛型、接口封装,便于工具类标准化约束入参出参。

2.3 HAR 与 HSP 模块化技术

  1. HAR 静态共享包:静态编译复用库,用于存放通用工具、业务实体、公共组件,打包时代码合并入主包,仅支持单向依赖;
  2. HSP 动态共享包:独立分包,运行时动态加载 / 卸载,用于存放低频重型业务页面,减小主包体积,优化冷启动速度。

2.4 核心系统 API 介绍

  1. 网络模块@ohos.net.http:实现前后端接口交互,支持 GET/POST/ 文件上传;
  2. 本地存储:relationalStore结构化数据库、preferences轻量键值存储;
  3. 媒体模块file.pickermultimedia.image:相册选择、图片解码压缩;
  4. 权限模块abilityAccessCtrlaccessToken:动态敏感权限申请与状态判断;
  5. 路由@ohos.router:页面跳转、参数传递、路由栈管理;
  6. 文件@ohos.fileio@ohos.file.fs:沙盒目录读写、缓存统计清理。

第 3 章 系统总体设计

3.1 系统需求分析

3.1.1 功能需求
  1. 用户模块:账号本地缓存、登录校验、全局登录状态持久化、退出登录;
  2. 笔记模块:新建、编辑、删除、分页加载、标题模糊搜索;
  3. 媒体模块:相册单选 / 多选图片、图片压缩、图片存入沙盒缓存;
  4. 设置模块:深色模式切换、缓存大小统计、一键清理缓存;
  5. 底层通用能力:统一弹窗、动态权限校验、分级日志、全局路由拦截;
  6. UI 规范:统一深浅两套主题,全局尺寸、色彩标准化。
3.1.2 非功能需求
  1. 性能需求:列表滑动无卡顿,HSP 分包冷启动快速,页面销毁无内存持续上涨;
  2. 兼容性需求:适配 API23 及以上手机设备;
  3. 健壮性需求:网络失败、空数据、数据库异常均有兜底页面;
  4. 可维护性需求:分层解耦,工具类、组件高度复用,无硬编码样式与路径;
  5. 安全需求:日志自动脱敏手机号、token 等敏感信息,动态权限按需申请。

3.2 四层分层整体架构设计

整体采用单向依赖四层架构,禁止循环、反向依赖,依赖流向:页面 / HSP → 业务 HAR → har_base 公共底层。

  1. 第一层 entry 入口层应用生命周期管理、全局初始化、首页 / 登录 / 设置常驻页面、HSP 加载调度、路由登录拦截。
  2. 第二层 har_base 公共底层 HAR全部底层工具类、全局类型常量、通用无业务 UI 组件、主题样式,全模块共享,无任何业务耦合。
  3. 第三层 业务静态 HAR(har_user、har_note)独立业务域实体、数据库操作、业务专用组件,仅依赖 har_base,业务模块之间互不引用。
  4. 第四层 HSP 动态分包(hsp_note_editor)重型低频编辑器页面,运行时按需加载,使用完成卸载释放内存。

3.3 模块划分与职责

完整工程模块清单:

  1. entry:主应用入口模块;
  2. har_base:全局公共底层静态库;
  3. har_user:用户业务静态 HAR;
  4. har_note:笔记业务静态 HAR;
  5. 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 核心业务流程设计

  1. 用户登录流程页面加载读取本地缓存账号→输入账号密码→调用网络登录接口→成功后持久化 token 与账号→写入全局登录状态→跳转首页。
  2. 笔记分页加载流程进入列表初始化页面加载状态→RDB 分页查询笔记→判断数据长度切换空 / 正常视图→下拉刷新重置页码、上拉加载下一页。
  3. 新建笔记流程首页点击新建按钮→路由拦截校验登录状态→动态加载编辑器 HSP 分包→编辑器页面操作保存数据→写入 RDB 数据库→返回列表刷新数据。
  4. 深色模式切换流程设置页读取全局深色状态→切换 Toggle 修改全局变量→PersistentStorage 自动持久化→全局 Theme 工具自动切换深浅色值,页面实时刷新 UI。

3.6 全局主题设计规范

分为固定尺寸常量、浅色色彩集、深色色彩集三部分:

  1. 尺寸:四级间距、五级圆角、五级字号、标准控件高度;
  2. 色彩:主色、成功、警告、危险、一级 / 二级 / 占位文字、页面背景、卡片背景、分割线;
  3. 统一复合样式:卡片阴影、标准卡片修饰符,所有页面直接复用,杜绝硬编码色值与尺寸。

第 4 章 核心模块详细设计与实现

4.1 har_base 公共底层工具实现

4.1.1 网络请求工具 HttpUtil

基于@ohos.net.http封装 axios 风格请求工具,核心功能:

  1. 请求拦截自动携带全局 token;
  2. 统一全局加载弹窗;
  3. 响应拦截统一处理 HTTP 状态码与业务码,401 登录失效自动退出登录;
  4. 页面销毁批量 abort 终止所有请求,防止无效回调;
  5. 封装文件上传方法,支持表单图片上传。

核心流程:发起请求→开启 loading→拼接请求头与参数→异步请求→响应解析→统一异常捕获→关闭 loading。

4.1.2 关系型数据库工具 RdbUtil

封装 RDB 完整 CRUD、分页、事务:

  1. 注入页面上下文初始化数据库,自动执行建表 SQL;
  2. 单条新增、按 id 删除、修改笔记、关键词模糊分页查询;
  3. 批量事务插入,异常自动回滚保证数据原子性;
  4. ResultSet 读取完毕自动关闭,页面退出关闭数据库释放文件锁。
4.1.3 全局状态管理 GlobalStore

整合 AppStorage 内存状态 + PersistentStorage 持久化绑定:

  1. 统一管理登录状态、token、深色模式、用户信息全局变量;
  2. 泛型 get/set 方法实现类型约束,避免 any 类型报错;
  3. watch 监听状态变更,页面销毁解绑监听防止内存泄漏;
  4. 封装登录、退出登录批量修改全局状态方法。
4.1.4 其余底层工具简要说明
  1. PrefUtil:Preferences 多文件隔离存储,账号、配置持久化;
  2. RouterUtil:路由封装、登录拦截、HSP 分包专用跳转、路由栈清空;
  3. DialogUtil:提示 / 确认 / 输入 / 加载四类全局弹窗,页面退出批量关闭;
  4. PermissionUtil:动态权限申请,区分永久拒绝并跳转系统设置;
  5. ImagePickerUtil:相册单选多选、图片压缩、图片保存沙盒;
  6. FileUtil:沙盒目录读写、缓存大小计算、一键清空缓存;
  7. LogUtil:四级分级日志、敏感信息脱敏、本地日志文件持久化。

4.2 通用 UI 组件实现

4.2.1 StateView 页面状态兜底组件

采用枚举区分四种页面状态:LOADING 加载、EMPTY 空数据、ERROR 异常、CONTENT 正常列表。 通过 @BuilderParam 插槽解耦业务布局,四种视图互斥渲染,内置加载旋转动画,组件销毁自动终止动画,统一全局空页面、错误页面 UI 样式。

4.2.2 RefreshListView 下拉刷新分页列表组件

内置手势下拉刷新、滚动触底上拉加载更多,核心机制:

  1. isRefreshing、isLoadingMore 双重请求锁,防止并发重复请求;
  2. 下拉拖拽旋转动画,松手未达阈值自动回弹;
  3. 底部 Footer 区分加载中、无更多数据两种文案;
  4. 页面销毁重置所有手势、动画状态,消除内存残留。

4.3 业务 HAR 模块实现

4.3.1 har_user 用户模块
  1. UserInfo 用户信息实体类定义;
  2. 登录接口封装、头像相册选择上传业务逻辑;
  3. 用户信息展示专用卡片组件。
4.3.2 har_note 笔记模块
  1. Note 笔记实体类;
  2. 封装笔记数据库分页、模糊查询、增删改专用方法;
  3. 笔记列表条目复用卡片组件。

4.4 HSP 动态分包 hsp_note_editor 实现

编辑器页面独立放入动态分包,实现按需加载:

  1. 编辑器输入框、图片预览子组件;
  2. 唤起相册选择图片并压缩存入缓存;
  3. 保存笔记调用 har_note 数据库写入接口;
  4. 页面退出调用卸载分包接口,释放内存资源。

4.5 entry 入口模块实现

  1. EntryAbility 应用全局初始化:注入所有工具上下文、初始化持久化全局状态、设置生产环境日志等级;
  2. 常驻页面:首页导航、登录页、设置页、个人中心;
  3. 统一 HSP 加载调度工具,防止重复加载分包。

第 5 章 系统测试

5.1 测试环境

  1. 开发工具:DevEco Studio NEXT Beta
  2. API 版本:API23
  3. 测试设备:鸿蒙手机真机、模拟器
  4. 测试系统:OpenHarmony NEXT

5.2 功能测试用例与结果

表格

测试功能测试步骤预期结果测试结果
用户登录输入正确账号密码点击登录登录成功,跳转首页,重启保留登录状态通过
错误账号登录输入错误账号密码弹窗提示登录失败,停留在登录页通过
新建笔记首页点击新建,输入标题保存笔记存入数据库,列表刷新展示新笔记通过
删除笔记列表点击删除按钮,确认弹窗笔记从数据库删除,列表无对应条目通过
模糊搜索输入关键词搜索笔记仅展示标题匹配关键词的笔记通过
深色模式切换设置页开关切换深色页面全部 UI 自动切换深色配色,重启配置保留通过
缓存清理点击一键清理缓存,确认弹窗缓存目录清空,缓存大小重置为 0通过
相册选图编辑笔记唤起相册选择图片图片压缩存入缓存目录,编辑器可预览通过
未登录拦截未登录点击编辑器入口弹窗提示请先登录,跳转登录页面通过

5.3 性能测试

  1. 列表滑动性能:分页加载 200 条笔记,滑动全程无卡顿、无掉帧;
  2. 内存测试:重复进出编辑器 HSP 分包 10 次,内存无持续上涨,分包卸载后资源释放完全;
  3. 冷启动测试:仅加载 entry+har_base,首页加载完成耗时低于 300ms;
  4. 缓存计算:遍历缓存目录计算大小耗时极低,不阻塞 UI 线程。

5.4 异常健壮性测试

  1. 网络断开加载列表:页面切换 ERROR 错误视图,支持点击重试;
  2. 永久拒绝相册权限:弹窗引导跳转系统设置开启权限;
  3. 快速重复点击刷新 / 加载更多:内置请求锁拦截重复请求,无重复数据;
  4. 页面中途返回退出:后台无残留网络请求、弹窗、循环动画,无报错。

5.5 测试总结

系统全部功能用例执行通过,性能满足设计指标,各类异常场景均有完善兜底处理,内存泄漏问题全部解决,UI 深浅主题切换正常,模块化分包加载逻辑稳定可靠,达到预期设计目标。

第 6 章 总结与展望

6.1 项目总结

本文基于 OpenHarmony API23 设计并实现分层架构轻量化笔记管理系统,完成全部底层工具封装、通用 UI 组件开发、四层模块化工程搭建与完整业务功能开发,主要成果如下:

  1. 梳理并实现一套完整鸿蒙底层通用工具集,覆盖网络、数据库、存储、路由、权限、媒体、文件、日志、全局状态九大核心能力,解决原生 API 重复编码痛点;
  2. 封装 StateView 状态组件、RefreshListView 分页列表组件两套全局复用 UI 控件,统一 APP 页面加载、空数据、异常视觉规范;
  3. 设计深浅双主题全局样式体系,消除颜色、尺寸硬编码,实现一键全局换肤;
  4. 搭建 entry+har_base + 业务 HAR+HSP 四层单向依赖分层架构,实现代码解耦、分包体积优化、多人协作开发隔离;
  5. 完成用户登录、笔记 CRUD、图片附件、缓存管理、深色模式全套业务闭环,完善异常捕获、页面生命周期资源回收、内存泄漏治理;
  6. 完成完整功能、性能、异常多维度测试,系统稳定可用,可直接作为课程设计、毕业设计交付项目。

整套项目解决传统单模块鸿蒙应用耦合严重、复用性差、维护成本高、内存泄漏、UI 风格混乱等典型问题,提供标准化、工程化的 OpenHarmony 应用开发完整实践方案。

6.2 后续拓展与优化方向

  1. 业务功能拓展
    • 增加笔记标签分类、笔记排序、定时提醒通知功能;
    • 增加本地笔记数据导入导出,支持 txt 文件读写;
    • 增加本地数据加密存储,保护笔记隐私内容;
    • 对接后端云接口,实现笔记多设备云同步。
  2. UI 与主题拓展
    • 新增多套自定义主题配色,支持用户自定义主色调;
    • 字体大小多级调节适配老年用户。
  3. 架构与性能优化
    • 增加图片缓存 LRU 淘汰策略,自动清理过期临时图片;
    • 新增全局事件总线 EventUtil,跨页面解耦通信;
    • 拆分超大业务 HSP 为多个小型分包,进一步优化冷启动速度;
    • 接入埋点日志,统计页面访问、功能使用行为数据。
  4. 安全优化
    • 网络请求增加 SSL 证书校验,禁止生产环境明文 http 请求;
    • 用户敏感数据加密存入 Preferences,防止本地明文泄露。

参考文献

[1] 开放原子开源基金会.OpenHarmony 应用开发官方文档 [EB/OL]. [2] 王松。鸿蒙 ArkTS 应用开发实战 [M]. 机械工业出版社,2024. [3] 张三。基于模块化架构的 HarmonyOS 应用设计与实现 [J]. 计算机工程与设计,2025. [4] 李四。轻量级 SQLite 数据库移动端持久化方案研究 [J]. 信息技术,2024. [5] 周恒。动态分包 HSP 在鸿蒙大型应用中的性能优化 [J]. 数字技术与应用,2025.

http://www.cnnetsun.cn/news/3549260.html

相关文章:

  • 构建客户动态简报系统:用可信源+轻架构提升会议决策力
  • 明文化论坛:传统与现代融合的探索与实践
  • 文旅科技三城布局:大模型、轻量化与5G-A的差异化实践
  • 数字孪生落地四大攻坚:传感器、时间、模型与闭环的工程真相
  • STM32F103微控制器开发指南与实战经验
  • 旧手机改造无线网卡:低成本高性能网络方案
  • 旗舰手机轻量化技术解析:华为双潜望设计的工程突破
  • LangChain与LangGraph:AI开发工具链与工作流引擎对比
  • 00后AI编程新星:从课程作业到千万融资的创业路径
  • 力扣208-实现前缀树
  • 图片转PDF工具全攻略:从基础到专业方案
  • AI+Kuikly跨端开发实战:7.5小时构建多模态聊天应用
  • 航空无线电设备两点标定与高K值外推技术解析
  • Spring Boot实战:校园无人快递系统毕业设计全流程解析
  • 微博热门内容聚合项目的技术实现与运营策略
  • 国民级App Skill生态解析:从API到智能集成的技术演进与实践
  • Claude Code v2.1.199 版本更新与智能编程助手优化
  • GPU与CUDA在图形渲染中的核心优势与优化实践
  • Excel正则表达式与XLOOKUP结合实现智能文本匹配
  • VC++ MFC多SDI窗口与系统托盘图标实战开发指南
  • 终极解决方案:如何修复Krita AI插件中SD3模型的CLIP文本编码器缺失问题
  • AI工程化转型:从模型训练到业务落地的关键路径
  • 硬件设计原理图修改:从技术到商业的暴利逻辑
  • OpenAI Codex 命令行助手:从环境配置到批量任务实战指南
  • Axios HTTP客户端:从基础配置到企业级封装实战指南
  • 医疗AI落地核心:临床工作流适配与人机协同可信度
  • Qwen3.5蒸馏18B模型部署与优化指南
  • C语言内存对齐原理与跨平台编程实战指南
  • 湖北高考600分以上人数激增背后的教育趋势
  • MBIA做空案例:金融衍生品交易策略深度解析