鸿蒙开发 ,hap hsp har 区别及选择

此文章内容兼容API12,使用harmony next应用开发

解释:
1,HAP:Harmony Ability Package,鸿蒙 ability 包
2,HAR:Harmony Archive Package,鸿蒙静态共享包 .har
3,HSP:Harmony Shared Package,鸿蒙动态共享包 .hsp

区别:

1,鸿蒙的 module 分为 AbilityLibrary 两种类型
2,Ability类型的module,编译后生成 hap。
hap 分为 EntryFeature 两种类型,Entry 代表主模块,Feature代表动态特性模块,在模块下的 module.json5 处定义

{
  "module": {
    "name": "entry",
    "type": "entry",
  ...
  }
}

3,HAR 静态共享包

 "type": "har"
  • 编译时复用
  • 模块每引用一次,就会复制一份har包,造成重复拷贝
  • 不同hap引用同一个har包,无法实现数据共享
  • 支持应用内共享,也可以独立发布后供其他应用使用

4,HSP 动态共享包

 "type": "shared"
  • 运行时复用
  • 多个模块同时引用时,代码只会存在一份。,解决重复拷贝问题
  • 支持数据共享
  • 仅支持应用内共享

5,HAR 和 HSP均不可以独立运行,HAP可以
HAR vs HSP


使用建议:
1,开发者开发的模块,需要作为三方库供给其他应用依赖,只能使用HAR
2,建议业务组件使用 HSP,通用组件封装成 HAR

### 鸿蒙操作系统中的HARHSPHAP文件格式或组件类型的区别 #### HAP (Harmony Ability Package) HAP 是应用安装运行的基本单元,由代码、资源、第三方库以及配置文件等组成。这种包主要用于构建独立的应用程序模块,并且分为两种类型:entry feature。对于仅包含 `UIAbility` 组件而不需要使用 `ExtensionAbility` 组件的情况,建议通过单一的 entry 类型 HAP 来完成应用程序的开发工作[^3]。 ```json { "type": "entry", "name": "MainApp" } ``` #### HAR (Harmony Archive) 作为静态共享库的形式存在,HAR 主要用于提供给其他 HAP 使用的功能集合或是公共资源。它不会被直接部署到设备上执行,而是被打包进依赖它的 HAP 中一同发布。因此,在实际操作过程中,开发者通常会先创建好所需的 HAR 文件再将其加入至目标项目的编译流程里去[^2]。 ```bash # 编译命令示例 hbuildc --target=har -o output_directory source_files... ``` #### HSP (Harmony Shared Package) 不同于上述两者的是,HSP 属于一种动态共享库形式的存在。它可以允许同一组织内的不同应用程序间实现代码级与资源配置上的共用;然而需要注意的是,这类包并不支持单独安装备份或者启动运作——它们总是伴随着某个具体的 HAP 而存在并发挥作用。另外值得注意的一点在于,为了确保兼容性稳定性,HSP 的版本应当同所依附的那个 HAP 版本保持同步更新状态。除此之外,由于技术架构方面的原因,现阶段只有 Stage 模式的 API 可供选用,并且最低要求为 API Level 12以上[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值