第 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.

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐