| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 2 年前 | ||
| 6 个月前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 2 年前 | ||
| 6 个月前 | ||
| 2 年前 |
HSP
介绍
HSP(Harmony Shared Package)是动态共享包,按照使用场景可以分为应用内HSP和应用间HSP。应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。应用内HSP跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。
说明
由于当前不支持应用间HSP,这里提到的HSP特指应用内HSP。
效果预览
| 主页 | 资源引用页面 | 路由跳转页面 |
|---|---|---|
![]() |
![]() |
![]() |
| 路由返回页面 | ||
![]() |
使用说明:
1.启动HspSample(动态共享包)应用,首页正常显示所引用HSP的ArkUI组件、接口、资源。
2.点击主页"引用HSP的ts类和方法"按钮,正确引用HSP的ts类和方法,页面Hello World字段变更为result: 3。
3.点击主页"引用HSP中的资源"按钮,正确引用HSP中的资源,页面Hello World字段变更为getStringValue is shared。
4.点击主页"引用HSP导出的native方法"按钮,正确引用HSP导出的native方法,页面Hello World字段变更为result: 12。
5.点击主页"访问HSP中的资源"按钮,跳转至HSP中Index页面,Index页面正确访问HSP中的资源,显示内容为example.png的图片信息。
6.点击主页"页面路由跳转"按钮,正确引用HSP的路由跳转,跳转至menu页面,页面显示内容为:The page is menu。menu页面点击"router to HSP page"按钮,跳转至HSP的新页面,HSP的新页面上点击"back to HSP page"按钮,返回menu页面。
7.点击主页"页面路由返回"按钮,正确引用HSP的路由跳转,跳转至新页面,新页面上点击"back to HAP page"按钮,返回至主页。
工程目录
entry/src/main/ets/
|---entryability
| └---EntryAbility.ts
|---logger
| └---Logger.ts // 日志工具
└---pages
└---Index.ets // 首页
library
|---src
| └---main
| |---cpp
| | |---types
| | |---CMakeLists.txt
| | └---hello.cpp
| |---ets
| | |---components
| | | └---MyTitleBar.ets // ArkUI组件页面
| | |---page
| | | |---back.ets // 实现页面路由返回
| | | |---Index.ets // 访问HSP中的图片资源
| | | └---menu.ts
| | └---utils
| | └---nativeTest.ts // native方法页面
| | └---tset.ts // ts类和方法页面
| |---resources // 资源文件
| └---module.json5
└---oh-package.json5
具体实现
- 本示例为HspSample(动态共享包)应用,提供 导出HSP的ArkUI组件、接口、资源功能:
- 导出HSP的ArkUI组件、接口、资源,HSP中的资源,源码链接:index.ets
- HSP中MyTitleBar.ets文件的ArkUI组件,源码链接:MyTitleBar.ets
- HSP中test.ts文件的ts类和方法,源码链接:test.ts
- HSP中nativeTest.ts文件的native方法。在HSP中也可以包含C++编写的so,对于so中的native方法,HSP通过间接的方式导出,如导出libnative.so的乘法接口multi,源码链接:nativeTest.ts
- 通过$r访问HSP中的资源,源码链接:Index.ets
- HSP中的资源管理类,跨包访问HSP内资源时,推荐实现一个资源管理类,以封装对外导出的资源,源码链接:ResManager.ets
- 引用HSP的ArkUI组件、接口、资源
- 在使用方中,引用HSP的ArkUI组件、接口、资源及 页面路由跳转,源码链接:index.ets
- 导出HSP的ArkUI组件、接口、资源,HSP中的资源,源码链接:index.ets
相关权限
不涉及。
依赖
不涉及。
约束与限制
1.本示例仅支持标准系统上运行,支持设备:RK3568。
2.本示例为Stage模型,支持API11版本SDK,SDK版本号(API Version 11 Canary1)。
3.本示例需要使用DevEco Studio版本号(3.1 Release)及以上版本才可编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/BundleManagerDocsSample/HspSample/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master



