HarmonyOS 鸿蒙Next中想要将功能封装成一个包,可以被多个不同的项目引用

HarmonyOS 鸿蒙Next中想要将功能封装成一个包,可以被多个不同的项目引用 想要将功能封装成一个包,可以被多个不同的项目引用,应该如何操作

5 回复

【解决方案】:有两种方案,一个是hsp一个是har,这两个都可以实现,具体可以参考文档

har方式:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-har

hsp方式:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hsp

更多关于HarmonyOS 鸿蒙Next中想要将功能封装成一个包,可以被多个不同的项目引用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


尊敬的开发者您好,可以通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码,详见:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/har-package

har包

在HarmonyOS Next中,可将功能封装为HAR(Harmony Archive)或HSP(Harmony Shared Package)。HAR是静态共享包,编译时打包到宿主应用;HSP是动态共享包,运行时复用。创建模块时选择“Static Library”或“Shared Library”,在oh-package.json5中配置导出接口,其他项目通过ohpm install引入。

在HarmonyOS Next中封装功能包供多项目引用

在HarmonyOS Next中,将功能封装成包供多项目引用,主要采用HAR(Harmony Archive)或HSP(Harmony Shared Package)两种方式。

1. HAR(静态共享包)

  • 适用于纯代码、资源、配置文件的封装,编译时打包到引用项目中。
  • 创建:在DevEco Studio中新建Module,选择“Static Library”。
  • 导出:在模块的index.ets文件中声明要暴露的接口、类等。
  • 引用:在oh-package.json5中通过dependencies字段配置本地路径(如"file:../mylib")或发布到ohpm仓库后引用。

2. HSP(动态共享包)

  • 适用于运行时动态加载,多个应用或模块共享同一份代码实例,减少包体积。
  • 创建:新建Module时选择“Shared Library”。
  • 导出:同HAR,在index.ets中导出。
  • 引用:在oh-package.json5中配置依赖,或通过动态引用方式在运行时加载。

关键操作步骤

  1. 在需要复用的模块根目录下,创建index.ets文件,将对外暴露的类、函数、组件统一导出。
  2. 在目标项目的oh-package.json5dependencies字段中增加依赖声明:
    • 本地引用:"@my/package": "file:../path-to-package"
    • 远程引用:"@my/package": "1.0.0"(需先发布到ohpm仓库)
  3. 在目标代码中通过import { MyClass } from '@my/package'导入使用。

注意点

  • HAR包中的资源文件会随主包合并,HSP则独立存在。
  • 多项目引用同一HSP时,需确保设备上已安装该HSP包(通常由主应用或系统预置)。
  • 若涉及跨应用共享(如多个独立应用共用包),需使用HSP并配置合适的权限及安装策略。
回到顶部