0b6bf8ac创建于 6月29日历史提交
文件最后提交记录最后更新时间
2 年前
2 年前
6 个月前
6 个月前
2 年前
6 个月前
2 年前
3 个月前
2 年前
6 个月前
2 年前
README

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

相关权限

不涉及。

依赖

不涉及。

约束与限制

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