HarmonyOS鸿蒙Next中请问har包和hsp包使用场景如何划分

HarmonyOS鸿蒙Next中请问har包和hsp包使用场景如何划分 请问har包hsp包使用场景如何划分

比如不提供画面只做认证和保存用户数据的模块需要使用har包还是hsp包?

如果使用har做共通的话,有多个features包引他的情况下,app中会有多个har包还是只有一个?

3 回复
  1. 请问 har 包 hsp 包使用场景如何划分

    HAR-应用程序包开发与使用-应用程序包基础知识-开发基础知识-基础入门 - 华为HarmonyOS开发者 (huawei.com)

    HSP-应用程序包开发与使用-应用程序包基础知识-开发基础知识-基础入门 - 华为HarmonyOS开发者 (huawei.com)

  2. 比如不提供画面只做认证和保存用户数据的模块需要使用 har 包还是 hsp 包?

    当只有一个模块使用时,用 har,多个模块使用时用 hsp。没有必须使用 har 的要求。

    而 HSP 中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。

    HSP 旨在解决多个 HAP 引用相同的 HAR,导致的 APP 包大小膨胀问题以及 HAR 中的一些状态变量无法共享的问题。资源公用的话可以放到 hsp 包里

  3. 如果使用 har 做共通的话,有多个 features 包引他的情况下, app 中会有多个 har 包还是只有一个?

    HAR 中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝,当 HAR 在项目中有被多个模块使用方时,使用它的 HAP 中都拥有一份相同的 HAR 编译产物;

更多关于HarmonyOS鸿蒙Next中请问har包和hsp包使用场景如何划分的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,har包(HarmonyOS Ability Package)和hsp包(HarmonyOS Shared Package)的使用场景主要根据模块的复用性和依赖关系进行划分。

  1. har包:主要用于封装业务逻辑和UI组件,适用于需要独立部署和运行的模块。har包可以包含多个Ability、UI组件、资源文件等,适用于需要独立开发、测试和发布的业务模块。har包在编译时会被打包成一个独立的HAP(HarmonyOS Ability Package),并可以在设备上独立安装和运行。

  2. hsp包:主要用于封装共享的代码和资源,适用于多个模块之间的复用。hsp包可以包含公共的库、工具类、资源文件等,适用于需要在多个har包或hsp包之间共享的代码和资源。hsp包在编译时会被打包成一个独立的HSP(HarmonyOS Shared Package),并可以被其他har包或hsp包引用。

总结:har包适用于独立部署的业务模块,hsp包适用于跨模块共享的代码和资源。

在HarmonyOS鸿蒙Next中,.har包和.hsp包的使用场景主要基于模块的共享和复用需求:

  1. .har包(Harmony Archive)

    • 场景:主要用于静态资源的共享,如工具类、公共组件等。
    • 特点:编译时会将代码和资源打包到主模块中,适合无需独立编译和部署的场景。
  2. .hsp包(Harmony Shared Package)

    • 场景:用于动态共享的模块,如功能模块、服务等。
    • 特点:支持独立编译和部署,运行时动态加载,适合需要灵活更新和复用的场景。

总结:.har适用于静态资源,.hsp适用于动态模块。

回到顶部