[干货]HarmonyOS 鸿蒙Next:har包和hsp包的区别,动态包和静态包的区别,使用场景?

发布于 1周前 作者 eggper 来自 鸿蒙OS

[干货]HarmonyOS 鸿蒙Next:har包和hsp包的区别,动态包和静态包的区别,使用场景?

  • 作用用于实现代码和资源的共享。同一个Library类型的Module可以被其他的Module多次引用,合理地使用该类型的Module,能够降低开发和维护成本。Library类型的Module分为Static和Shared两种类型,编译后会生成共享包。
  • Static Library:静态共享库。编译后会生成一个以.har为后缀的文件,即静态共享包HAR(Harmony Archive)。
  • Shared Library:动态共享库。编译后会生成一个以.hsp为后缀的文件,即动态共享包HSP(Harmony Shared Package)。
  1. HAR与HSP两种共享包的主要区别体现在:
  • 编译和运行方式:

    • HAR:HAR中的代码和资源跟随使用方编译,如果有多个使用方,他们的编译产物中会存在多分相同拷贝。
    • HSP:HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
  • 发布和引用方式:

    • HAR:HAR除了支持应用内引用,还可以独立打包发布,供其他应用引用。
    • HSP:HSP一般随应用进行打包,当前只支持应用内引用,不支持独立发布和跨应用的引用。
  1. 使用场景:
  • HAR包适用于不同代码和资源共享,可以上传至openharmony第三方共享仓开源,也可以在公司内搭建私有仓库进行内部共享。
  • hsp适用于单个项目内容三层架构按功能模块分包,有利于降低打包体积,目前hsp还不能项目间共享。

更多关于[干货]HarmonyOS 鸿蒙Next:har包和hsp包的区别,动态包和静态包的区别,使用场景?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于[干货]HarmonyOS 鸿蒙Next:har包和hsp包的区别,动态包和静态包的区别,使用场景?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,har包与hsp包是两种不同的应用打包方式,它们的主要区别在于内容和用途:

  1. har包:har包通常包含了应用的代码、资源文件以及必要的配置信息。它更接近于传统意义上的应用安装包,用于静态部署应用。har包在打包时就已经确定了应用的所有内容,因此在运行时不会发生变化。

  2. hsp包:hsp包则是一种更灵活的应用打包方式,它允许应用在运行时动态加载和卸载模块。hsp包通常包含了应用的核心功能,而额外的功能模块则可以在需要时动态加载。这种方式有助于提高应用的可扩展性和维护性。

至于动态包和静态包的区别,主要体现在加载方式和灵活性上:

  • 静态包:如前所述,静态包(如har包)在打包时已经确定了所有内容,运行时不会发生变化。这种方式适用于功能相对固定、不需要频繁更新的应用。

  • 动态包:动态包(如通过hsp包实现的动态模块)则允许应用在运行时根据需要加载或卸载模块,提高了应用的灵活性和可扩展性。

在使用场景上,har包更适合于功能固定、对性能要求较高的应用;而hsp包则更适合于需要频繁更新、功能模块较多的应用。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部