鸿蒙HSP,HAP,HAR

HAP

HarmonyOS Ability Package,

是由代码,资源,第三方库,配置文件等打包生成的模块包

用于封装应用程序的各个模块,比如登录模块,具体某个业务模块,一个HAP中可能会包含一个或多个'UIAbility',这些Ability负责不同的用户界面和交互逻辑

实例

'UserIterfaceHAP.hap'负责用户管理界面,包括登录,注册,个人信息等

'ProductDisplayHAP.hap'负责产品展示界面,包括产品列表,详情等。

HSP

HarmonyOS Service Package(用于封装服务的逻辑模块)

业务逻辑层,负责应用的核心功能和服务,作为UI层的支撑服务,

HAR

HarmonyOS Archive(用户封装库文件,类似framework)

:如果某些业务逻辑是通用的,并且可能被多个HAP或HSP使用,那么可以将这些逻辑封装到HAR包中

模块化设计和包的拆分

表示层(UI)-HAP

HAP:每个HAP包对应一个独立的UI模块,可以根据功能模块来划分HAP,如登录模块,用户管理模块,产品模块

每个HAP专注于特定的界面逻辑,便于后续的独立开发和维护

如下:

UserInterfaceHAP.hap: 负责用户管理界面,包括登录、注册、个人信息等。

ProductDisplayHAP.hap: 负责产品展示界面,包括产品列表、详情等。

业务逻辑层HSP/HAR

HSP:HSP负责处理用户相关的业务逻辑,如登录验证,用户信息处理等不需要 Ability 能力的按需加载模块

HAR:主要是为了复用,比如将网络请求数据,数据解析等工具类封装到HAR包中,与业务无关联。

比如 CommonUtilities.har .封装常用的工具或者方法库

使用场景

发布到OHPM私仓,供公司内部其他应用使用

发布到OHPM中心仓,供其他应用使用

设计和实现策略

模块间通信

使用want进行模块间通信,

示例:

UserManagementHSP.hsp:

PaymentServiceHSP.hsp负责支付处理的业务逻辑

CommonUtilities.har:包含公用的工具类或者方法库

问题点:

HAR 重复引用带来的代码重复问题,HSP 动态加载带来的安装速度和性能问题,在实际开发过程中都会面临不同的取舍。

相关推荐
李游Leo2 小时前
HarmonyOS 7 端侧 AI 视觉能力实战 04:给图片增加人脸检测能力
harmonyos
ChinaDragon2 小时前
HarmonyOS:应用程序包管理模块(获取当前应用信息)
harmonyos
Latte Moments开发4 小时前
Harmony鸿蒙实战开发-事件提醒app「事件名称/描述、提醒日期、提醒时长、延迟提醒次数、延迟提醒事件间隔」➕⏰声音【源码在文末】
华为·harmonyos
星栖与芯4 小时前
LiteOS-M 切换汇编逐行图解(2):指令·异常机制·全景表
stm32·单片机·嵌入式硬件·harmonyos·鸿蒙系统
OH_TPC5 小时前
【鸿蒙优选三方库】@react-native-ohos/react-native-svg:SVG 矢量图形渲染组件
华为·harmonyos·鸿蒙
李游Leo7 小时前
HarmonyOS 7 实战开发 01:搭建内容工作台基础框架
harmonyos
大雷神9 小时前
【共创稿事节】HarmonyOS ArkGraphics 3D实操——给智能音箱做一间材质实验室
harmonyos
马剑威(威哥爱编程)10 小时前
【共创稿事节】HarmonyOS 7 Agent A2A 实战:让日程智能体和打车智能体自己谈成一单
pytorch·深度学习·harmonyos
范小兵10 小时前
# DevEco CLI实战:鸿蒙App「至客」从0开发到正式上架
前端·harmonyos
熊猫钓鱼>_>11 小时前
声临其境:HarmonyOS 空间音频全链路开发实战
音频·harmonyos·arkts·鸿蒙·arkui·空间·hap