智能客服
你问我答,随时在线为你解决问题
您当前浏览的3.1/4.0版本文档归档不再维护,推荐您使用最新的HarmonyOS NEXT版本文档。详细请参考文档维护策略变更。
对于企业大型应用开发,有部分公共的资源和代码,只能在开发态静态共享,并且打包到每个依赖的HAP里,这样导致包体积较大,且有重复多份公共资源和代码重复打包到应用中。
为了解决运行态状态无法共享,以及减少包体积,让多个HAP能够共享同一公共资源代码,DevEco Studio支持动态共享包HSP(Harmony Shared Package)。
应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。 应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。
当前暂不支持跨应用共享包。


创建完成后,会在工程目录中生成库模块及相关文件。

参考应用内HSP开发指导开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HSP。

打包HSP时,会同时默认打包出HAR,在模块下build目录下可以看到*.har和*.hsp。

- {
- ...
- "dependencies": {
- "sharedlibrary": "file:../sharedlibrary"
- }
- }
添加引用后,dependencies字段内的片段将出现报错:


HSP目录将映射到entry/feature的oh_modules目录下:

在HSP中,通过如$r(app.string.xxxx)的方式使用本模块resources目录下的资源。注意图片等资源需放置在resources/base下的目录。如果使用相对路径的方式,例如: 在HSP模块中使用Image("common/example.png"),实际上该Image组件访问的是HSP调用方(如entry)下的资源entry/src/main/ets/common/example.png。