HarmonyOS 鸿蒙Next 在HAR和HSP的选择上有什么建议吗 二者的加载机制有什么区别

HarmonyOS 鸿蒙Next 在HAR和HSP的选择上有什么建议吗 二者的加载机制有什么区别 对于各个业务模块、底层功能模块,在HAR和HSP的选择上有什么建议吗,二者的加载机制有什么区别呢?对启动耗时和包体大小影响的差异是什么样呢?

2 回复

HAR是静态共享包,编译态复用。

  • 支持应用内共享,也可以发布后供其他应用使用。
  • 多包(HAP/HSP)引用相同的HAR时,会造成多包间代码和资源的重复拷贝,从而导致应用包膨大。
  • 不同HAP包引入同一个HAR包,无法实现数据的共享。

HSP是动态共享包,运行时复用。

  • 当前仅支持应用内共享。
  • 当多包(HAP/HSP)同时引用同一个共享包时,采用HSP替代HAR,可以避免HAR造成的多包间代码和资源的重复拷贝,从而减小应用包大小。
  • 同一进程,运行时可共享代码,相比har包能有效减少内存消耗,同时能实现数据共享(比如常用的单例模式)

使用建议如下:

  1. 二方库, 三方库场景:开发者开发的模块,需要暴露给其他应用使用 . 只能使用har。
  2. 单HAP场景:如果没有按需加载诉求,推荐使用单hap + har。如果有按需加载诉求,推荐使用hsp。hap (独有har) + 按需加载的hsp (独有的har) ==> 公共hsp (封装公共的han)。
  3. 多HAP场景: 如果多hap没有共用的资源,推荐使用多hap + har。如果多hap有共用的资源,推荐使用hsp封装。hap1 (独有的har) + hap2 (独有的har) ==> 公共hsp (封装公共的har)

参考地址: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/application-package-overview-0000001820999513

更多关于HarmonyOS 鸿蒙Next 在HAR和HSP的选择上有什么建议吗 二者的加载机制有什么区别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next中,HAR(HarmonyOS Ability Resource)和HSP(HarmonyOS Service Package)是两种不同的资源或组件封装方式,它们的选择主要取决于你的应用需求和设计考量。

HAR主要用于封装应用的能力资源,它包含了应用运行所需的各类资源文件,如布局、图片、音频等,以及定义应用行为的能力代码。HAR的加载机制相对直接,通常与应用主体一起被加载到内存中,确保应用功能的完整性。

HSP则是一种服务包的概念,它封装了应用或服务所需的特定功能或数据,可以在多个应用或服务之间共享。HSP的加载机制更为灵活,它可以根据需要动态加载或卸载,有助于提高系统的资源利用率和应用响应速度。

在HAR和HSP的选择上,如果你的应用需要包含大量的静态资源且这些资源与应用的核心功能紧密相关,那么HAR可能是一个更好的选择。而如果你的应用需要实现模块化设计,或者需要与其他应用共享某些功能或服务,那么HSP可能更适合你的需求。

如果问题依旧没法解决请联系官网客服,官网地址是:

https://www.itying.com/category-93-b0.html

回到顶部