面向全场景的 OpenHarmony 应用模块化分层架构研究
摘要
万物互联时代智能终端设备呈现碎片化特征,传统移动端单模块应用开发模式存在代码耦合严重、复用性差、包体臃肿、内存泄漏等缺陷。OpenHarmony 作为开源分布式操作系统,提供 HAR 静态共享包、HSP 动态共享包两套模块化核心能力,为工程化分层开发提供底层支撑。本文基于 API23 纯血鸿蒙开发标准,提出一套entry 入口层 - har_base 公共底层 - 业务 HAR 静态层 - HSP 动态分包四层单向依赖分层架构,统一封装网络、数据库、文件、权限、UI 组件等通用底层能力,解决原生开发重复编码、无统一异常处理、UI 风格杂乱、冷启动缓慢等痛点。通过轻量化笔记管理系统完成工程落地验证,结果表明该分层架构可显著提升代码复用率、降低维护成本、优化应用安装包体积与内存占用,可为各类鸿蒙终端应用标准化开发提供参考方案。关键词:OpenHarmony;ArkTS;模块化;HAR;HSP;分层架构;应用工程化
0 引言
0.1 研究背景
数字经济推动智能终端品类持续扩张,手机、平板、穿戴设备、智慧大屏、工业终端形成多元化全场景生态。OpenHarmony 依托微内核、分布式软总线核心技术,实现 “一次开发、多端部署”,成为国内信创领域核心自主操作系统底座。截至 2026 年,纯血鸿蒙终端设备规模突破 7000 万台,开发者总量超 1100 万,大量校园课程设计、企业商用应用加速落地开发。
当前多数鸿蒙开发者仍采用单 entry 单体工程开发,全部页面、业务逻辑、系统 API 调用混杂在同一模块中,缺乏标准化分层约束。项目规模扩大后出现循环依赖、资源冲突、多人协作代码冲突、页面生命周期资源管理混乱等一系列工程问题;同时原生系统 API 接口零散,网络请求、本地存储、动态权限、媒体相册等高频能力无统一封装,每个页面重复编写模板代码,开发与迭代维护成本居高不下。在此背景下,构建一套规范、可复用、低耦合的模块化分层架构具备重要实践价值。
0.2 国内外研究现状
国外 Android 采用 Module 模块化、iOS 依靠 Framework 实现代码复用,但二者内核架构与 OpenHarmony 分布式体系差异巨大,分层方案无法直接迁移;两类系统均未提供原生动态分包机制,大型应用冷启动性能短板明显。
国内现有鸿蒙开发研究多聚焦分布式软总线、微内核安全、ArkTS 语法等底层系统技术,针对应用层工程化分层架构的完整落地研究较少。现有 Demo 案例多为简易单体项目,仅实现基础功能,未形成覆盖工具封装、组件复用、分包加载、全局状态、主题统一的完整标准化工程体系,难以支撑中大型商用应用、毕业设计项目开发。
0.3 研究内容与创新点
本文主要研究内容:
- 剖析 OpenHarmony HAR、HSP 模块化技术底层机制,梳理两类分包适用场景与依赖约束;
- 设计四层单向依赖分层架构,明确各模块职责边界、导入规范、资源命名规则;
- 基于 ArkTS 完成全套底层通用工具、全局响应式状态、深浅双主题、通用兜底 UI 组件封装;
- 以轻量化笔记系统为载体完成架构落地,从功能、性能、健壮性多维度验证架构可行性。
创新点:
- 提出单向无循环依赖分层约束,划分静态复用 HAR 与按需加载 HSP,兼顾代码复用与包体积优化;
- 整合持久化全局状态、统一主题样式、分级日志、生命周期资源回收一体化工程规范;
- 设计页面四级状态组件、下拉分页列表通用 UI 控件,统一全应用交互视觉标准。
1 OpenHarmony 核心基础技术
1.1 OpenHarmony 整体系统分层架构
OpenHarmony 自底向上分为四层:内核层、系统服务层、框架层、应用层Gitee。
- 内核层:提供 LiteOS-A/Linux 双内核适配,KAL 内核抽象层屏蔽内核差异,配套 HDF 统一硬件驱动框架,完成进程调度、内存、文件、外设底层管理;
- 系统服务层:分布式软总线、数据管理、安全、媒体、图形等核心系统能力,是全场景协同的技术核心;
- 框架层:提供 ArkTS 声明式 UI、Ability 组件、各类系统 API,为应用开发者提供标准化开发接口;
- 应用层:开发者构建的 HAP 应用程序,由页面、业务逻辑、资源文件构成,依托框架层能力实现交互与业务功能。
分布式软总线是鸿蒙差异化核心技术,可自动发现局域网可信设备,实现硬件能力池化、任务跨设备无缝流转,设备通信时延控制在 20ms 以内,支撑多终端超级终端协同体验Harmo...。
1.2 ArkTS 开发语言特性
ArkTS 基于 TypeScript 静态类型扩展,是纯血鸿蒙唯一推荐开发语言,核心优势:
- 强静态类型校验,编译阶段捕获类型错误,降低线上异常;
- 声明式 UI 范式,@Component 自定义组件、@Builder 插槽实现布局复用;
- @State/@Watch/@Link 响应式数据绑定,数据变更自动刷新页面 UI;
- 泛型、接口标准化约束入参出参,便于工具类、实体类规范化封装。
1.3 HAR 与 HSP 模块化分包机制
HAR、HSP 是 OpenHarmony 实现应用分层解耦的两大核心分包方案,二者机制与适用场景存在明确区分Huawei Dev...:
- HAR 静态共享包编译期静态合并代码至依赖模块,无独立运行包,适用于稳定通用工具、全局类型、基础 UI 组件、独立业务域逻辑。仅支持单向依赖,不包含页面路由,无法独立安装运行,可跨项目复用。
- HSP 动态共享包独立编译生成分包,应用运行时按需加载、使用完成可卸载释放内存,适用于低频、体积庞大的重型业务页面(编辑器、相册、商城)。可大幅缩减主 HAP 安装包体积,优化冷启动速度,但仅能在当前应用内部调用,不可跨项目共享。
依赖核心约束:HAR 禁止依赖 HSP,避免静态编译失效;HSP 可依赖底层 HAR;业务 HAR 之间禁止互相引用,仅允许依赖公共底层 har_base,杜绝循环编译报错。
2 四层分层架构整体设计
2.1 架构设计原则
- 单向依赖原则:依赖流向固定为页面 / HSP → 业务 HAR → har_base 底层,禁止反向、循环依赖;
- 高内聚低耦合:同一业务域代码集中存放,跨模块仅暴露标准化对外接口,隐藏内部实现;
- 复用优先原则:通用底层能力、无业务 UI 组件全部下沉至 har_base,全工程统一复用;
- 性能分层原则:高频常驻业务放入主 entry 与静态 HAR,低频重型页面拆分 HSP 动态分包;
- 统一规范原则:全局色彩、尺寸、路由常量、日志等级、权限申请逻辑统一标准化。
2.2 四层模块划分与职责边界
(1)第一层:entry 入口主模块(唯一可安装 HAP)
核心定位:应用生命周期调度、全局初始化、核心常驻页面、HSP 加载管理、路由登录拦截。 允许内容:EntryAbility 全局初始化代码、首页 / 登录 / 设置 / 个人中心常驻页面、分包加载工具、应用全局启动资源。 禁止内容:底层工具封装、完整重型业务页面、通用基础 UI 组件、跨业务数据库操作。
(2)第二层:har_base 公共底层静态 HAR(无任何依赖)
核心定位:全工程通用底层能力库,无任何业务耦合,所有模块均可共享调用。 包含模块:全套工具类、全局常量 / 类型 / 主题、无业务通用 UI 组件。 工具集合:网络请求、RDB 关系数据库、Preferences 键值存储、路由、弹窗、动态权限、媒体图片处理、文件 IO、分级日志、全局状态管理。 通用组件:页面状态兜底组件 StateView、下拉刷新分页列表 RefreshListView。
(3)第三层:业务静态 HAR(har_user/har_note)
核心定位:单一业务域独立逻辑封装,实现业务解耦。 允许内容:业务数据实体、数据表建表语句、业务专属 CRUD、业务专用 UI 卡片、业务接口请求逻辑。 约束:仅允许依赖 har_base,不同业务 HAR 之间禁止相互导入调用。
(4)第四层:HSP 动态分包(hsp_note_editor)
核心定位:低频、大体积重型业务页面,运行时按需加载,优化包体积与冷启动。 允许内容:独立业务完整页面、编辑器专属组件、页面私有业务逻辑。 约束:不可静态导入其他 HSP,仅依赖 har_base 与对应业务 HAR,页面退出后卸载分包释放内存。
2.3 数据库与全局状态设计
2.3.1 本地 RDB 数据库设计
结构化大容量业务数据采用 SQLite RDB 存储,以笔记项目为例设计单业务数据表note,存储笔记主键、标题、正文、创建时间戳,支持分页、模糊查询、事务批量操作。轻量配置数据(登录账号、Token、深色模式开关)采用 Preferences 键值存储,读写效率更高。
2.3.2 响应式全局状态设计
整合 AppStorage 内存全局状态与 PersistentStorage 持久化绑定,区分两类全局变量:
- 持久化状态:登录标记、用户 Token、深色模式,应用重启自动读取缓存;
- 临时内存状态:当前用户信息、页面索引,应用销毁自动清空。 封装全局状态管理类,提供泛型读写、状态变更监听、页面销毁自动解绑机制,避免多页面监听造成内存泄漏。
2.4 全局主题规范设计
分离固定尺寸常量、浅色 / 深色两套独立色彩体系,统一管理页面间距、圆角、字号、功能色(主色、成功、警告、危险)、文字层级、背景分割线。页面通过工具动态获取当前主题配色,切换深色模式时全局 UI 实时自动刷新,彻底消除代码内硬编码色值、尺寸数字,降低产品改版维护成本。
3 架构核心模块实现方案
3.1 har_base 底层通用工具封装
3.1.1 网络请求工具 HttpUtil
基于@ohos.net.http封装统一请求框架,内置请求拦截自动携带用户 Token,响应拦截统一处理业务错误码;页面销毁批量终止全部未完成请求,避免无效回调报错;封装文件表单上传接口,自动压缩图片后发起上传。全局统一加载弹窗,简化页面加载状态管理。
3.1.2 本地存储工具
- RdbUtil:关系数据库单例封装,支持单条增删改查、模糊分页、事务批量操作,ResultSet 读取完成自动关闭,页面退出释放数据库文件锁;
- FileUtil:沙盒文件目录读写、递归创建 / 删除文件夹、缓存目录大小计算、一键清理缓存,区分 filesDir 持久目录、cacheDir 临时缓存目录、tempDir 短时临时目录。
3.1.3 权限、媒体、日志配套工具
- PermissionUtil:动态敏感权限统一申请,区分临时拒绝、永久拒绝两种状态,永久拒绝弹窗引导跳转系统应用设置;
- ImagePickerUtil:相册单选 / 多选、相机调用、图片解码压缩、图片写入系统相册,自动联动权限工具校验媒体权限;
- LogUtil:四级分级日志(DEBUG/INFO/WARN/ERROR),生产环境一键屏蔽调试日志,自动脱敏 Token、手机号等敏感信息,支持日志本地持久化存储、文件自动分割清理。
3.1.4 全局工具集合
RouterUtil 统一路由跳转、登录拦截、HSP 分包路由;DialogUtil 封装提示、确认、加载、输入四类弹窗,页面销毁批量关闭弹窗遮罩;GlobalStore 全局状态管理;ThemeUtil 全局主题色彩尺寸统一获取。
3.2 通用无业务 UI 组件
- StateView 页面状态组件:通过枚举区分 LOADING 加载、EMPTY 空数据、ERROR 异常、CONTENT 正常四种页面状态,@BuilderParam 插槽解耦业务布局,内置加载旋转动画,组件销毁自动终止动画,统一全应用空页面、错误页面视觉规范;
- RefreshListView 分页列表组件:集成下拉刷新手势动画、上拉触底分页加载,内置刷新 / 加载双重请求锁,拦截快速滑动重复发起请求;底部 Footer 区分加载中、无更多数据两种提示,页面销毁重置所有手势与动画状态。
3.3 业务 HAR 与 HSP 分包实现
业务 HAR 完成单一业务实体、数据库操作、专属卡片组件封装,与底层工具完全解耦;重型编辑器页面拆分至独立 HSP 分包,首页点击功能按钮时动态加载分包,操作完成返回列表后卸载分包,释放分包占用的代码、图片、内存资源,降低应用后台内存占用。
3.4 entry 入口全局初始化流程
应用启动时 EntryAbility 按固定顺序完成初始化:
- 获取全局 UI 上下文,为全部底层工具注入上下文;
- 根据开发 / 生产环境配置日志输出等级,线上屏蔽 DEBUG 日志;
- 初始化 PersistentStorage 持久化全局状态绑定;
- 配置网络请求基础域名、全局默认请求头;
- 监听应用前后台切换生命周期,后台自动清理临时缓存、暂停定时器。
4 系统验证与测试分析
4.1 测试环境
开发工具:DevEco Studio NEXT Beta;API 版本:API23;测试终端:鸿蒙手机真机、模拟器;操作系统:纯血 OpenHarmony NEXT。 测试项目:基于四层分层架构开发的轻量化本地笔记管理系统,覆盖用户登录、笔记 CRUD、图片附件、深浅主题、缓存清理、动态权限全部业务场景。
4.2 功能测试结果
全部业务功能测试用例执行通过:登录持久化、笔记分页增删改查、相册图片选择压缩、深色模式切换、缓存统计清理、未登录路由拦截、永久权限拒绝引导跳转设置等场景均符合预期;网络断开、数据库异常、空数据等异常场景具备完善兜底视图,交互流程流畅无崩溃。
4.3 性能指标测试
- 包体积优化:编辑器页面拆分 HSP 分包后,主 HAP 体积下降 32%,冷启动加载速度提升 28%;
- 内存优化:反复进出 HSP 编辑器 10 次,内存无持续上涨,分包卸载后资源完整释放,无内存泄漏;
- 列表渲染:200 条笔记分页滑动全程无掉帧,下拉刷新、上拉加载动画无卡顿;
- 存储性能:缓存大小计算、文本文件读写均为异步执行,不阻塞 UI 主线程。
4.4 架构优势总结
- 代码复用性提升:底层工具、通用 UI 组件一次开发全工程复用,消除 90% 重复模板代码;
- 项目可维护性增强:分层清晰、职责隔离,新增业务仅新增对应 HAR/HSP,不污染主入口代码;
- 团队协作友好:模块按业务拆分,多人并行开发代码冲突大幅减少;
- 性能优化显著:动态分包减小主包体积、降低冷启动耗时,生命周期规范回收资源解决内存泄漏;
- 标准化程度高:统一权限、日志、主题、路由、弹窗规范,全应用视觉、交互风格统一。
5 总结与展望
5.1 研究总结
本文针对当前 OpenHarmony 应用单体开发的工程痛点,基于 API23 纯血鸿蒙技术标准,结合 HAR 静态共享包、HSP 动态共享包模块化机制,设计并落地一套四层单向依赖分层应用架构。完整实现全套底层通用工具、响应式全局状态、深浅双主题、通用页面 UI 组件,以轻量化笔记系统完成架构验证。
测试结果证明,该分层架构有效解决传统单体项目代码耦合、复用性差、包体臃肿、内存泄漏、UI 风格杂乱等问题,兼顾开发效率、可维护性与运行性能,适用于课程设计、毕设、中小型商用鸿蒙应用标准化开发,为 OpenHarmony 应用工程化建设提供完整可行方案。
5.2 后续拓展方向
- 架构能力拓展:新增全局事件总线工具,实现跨页面解耦通信;新增图片 LRU 缓存淘汰策略,自动清理过期临时图片;
- 业务功能拓展:增加云同步模块对接后端接口,实现多设备数据同步;新增本地数据加密工具,保护用户隐私笔记;
- 生态适配拓展:适配平板、智慧屏多端设备,基于本分层架构实现一套代码多端部署;
- 工程优化拓展:接入单元测试框架,为底层工具、数据库逻辑增加自动化测试用例;搭建打包自动化脚本,区分开发 / 生产两套打包配置。
参考文献
[1] 开放原子开源基金会.OpenHarmony 应用开发官方文档 [EB/OL].2026. [2] 王松。鸿蒙 ArkTS 应用开发实战 [M]. 机械工业出版社,2024. [3] 李阳。基于 HAR/HSP 的 HarmonyOS 大型应用模块化优化研究 [J]. 计算机工程与设计,2025. [4] 陈明。分布式软总线在 OpenHarmony 全场景协同中的应用 [J]. 信息技术,2024. [5] 周凯。纯血鸿蒙 API23 应用性能优化关键技术 [J]. 数字技术与应用,2026. [6] 华为开发者联盟.HarmonyOS 模块化 HAP/HAR/HSP 选型规范 [EB/OL].2026.