未验证 提交 79163b82 编写于 作者: O openharmony_ci 提交者: Gitee

!16420 优化hsp资料描述

Merge pull request !16420 from hwyml/xbw
......@@ -7,12 +7,12 @@
1. 应用间`HSP`的代码会运行再开发者应用的进程中,调用相关代码时,需要做好异常捕获与容错处理,防止由于应用间`HSP`功能异常导致的稳定性问题。
2. 一个应用可以同时依赖多个应用间`HSP`
3. 应用间`HSP`会影响开发者应用自身的启动时间,依赖过多的应用间`HSP`可能会导致启动时延发生明显的劣化,建议将依赖的数目控制在16个以内。
4. 当前三方开发者开发者只能使用系统提供的应用间`HSP`,不支持开发并发布自己的应用间`HSP`
4. 应用间`HSP`安装时需要对特权权限进行校验,如果想要开发应用间`HSP`,需要配置allowAppShareLibrary应用特权,具体配置方式参考[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)
## 应用间HSP的使用
应用间HSP会分为两部分对外发布:
一部分为[HAR](har-package.md)这部分`HAR`中不会包含具体的功能实现代码,而仅仅包含导出的对象与方法,所以体积很小。应用开发者将`HAR`集成到自身的工程中,然后就可以通过调用`HAR`中提供的对象与方法完成自身的应用功能。
一部分为[HAR](har-package.md)`HAR`包中不会包含具体的功能实现代码,而仅仅包含导出的对象与方法,所以体积很小。应用开发者将`HAR`包集成到自身的工程中,然后就可以通过调用`HAR`中提供的对象与方法完成自身的应用功能。
另外一部分为HSP,这部分为应用间`HSP`的具体实现,里面包含js/ts代码、C++库、资源和配置文件。这部分会上架到应用市场或者集成到系统版本中。
......@@ -23,7 +23,7 @@ src
├── main
| └── module.json5
├── index.d.ets
└── package.json
└── oh-package.json5
```
`index.d.ets`内容样例如下:
```ts
......@@ -117,7 +117,7 @@ extern "C" __attribute__((constructor)) void RegisterLibaModule(void) {
}
```
### 使用HAR导出的能力
引用`HAR`前,需要先配置对`HAR`的依赖,配置方式可参考[文档](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-development-npm-package-0000001222578434#section89674298391)`HAR`配置成功后,在配置模块的`module.json`中会生成相关依赖项信息,如下所示:
引用`HAR`前,需要先配置对`HAR`的依赖,配置方式可参考[文档](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-development-npm-package-0000001222578434#section89674298391)`HAR`配置成功后,在配置模块的`module.json5`中会生成相关依赖项信息,如下所示:
```json
"dependencies": [
{
......@@ -218,4 +218,4 @@ bm install -p feature.hap
```
4. 启动开发者自身的应用,调试相关功能。
**注意**:步骤2和步骤3不可以颠倒,否则会由于缺少必要的应用间`HSP`导致开发者的应用安装失败。更多`bm`相关指令可以参考[文档](https://gitee.com/openharmony/bundlemanager_bundle_framework#bm%E5%B7%A5%E5%85%B7%E5%91%BD%E4%BB%A4)
\ No newline at end of file
**注意**:步骤2和步骤3不可以颠倒,否则会由于缺少必要的应用间`HSP`导致开发者的应用安装失败。更多`bm`相关指令可以参考[文档](https://gitee.com/openharmony/bundlemanager_bundle_framework#bm%E5%B7%A5%E5%85%B7%E5%91%BD%E4%BB%A4)
......@@ -27,7 +27,7 @@ artifactType字段有以下两种取值,默认缺省为original。
- Stage模型的HAR,不能引用AppScope内的内容。在编译构建时APPScope中的内容不会打包到HAR中,导致HAR资源引用失败。
## 导出HAR的ArkUI组件、接口、资源
index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在index.ets文件中导出。index.ets文件是DevEco Studio默认自动生成的,用户也可以自定义,在模块的package.json文件中的main字段配置入口声明文件,配置如下所示:
index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在index.ets文件中导出。index.ets文件是DevEco Studio默认自动生成的,用户也可以自定义,在模块的oh-package.json5文件中的main字段配置入口声明文件,配置如下所示:
```json
{
"main": "index.ets"
......
......@@ -15,7 +15,7 @@ library
│ │ └── index.ets
│ ├── resources
│ └── module.json5
└── package.json
└── oh-package.json5
```
模块`module.json5`中的`"type"`标识模块类型,`HSP``"type"``"shared"`
```json
......@@ -24,7 +24,7 @@ library
}
```
`HSP`通过在入口文件中导出接口,对外提供能力。入口文件在模块`package.json``"main"`中配置。例如:
`HSP`通过在入口文件中导出接口,对外提供能力。入口文件在模块`oh-package.json5``"main"`中配置。例如:
```json
{
"main": "./src/main/ets/index.ets"
......@@ -103,9 +103,9 @@ export { nativeMulti } from './utils/nativeTest'
```
## 使用应用内HSP
要使用`HSP`中的接口,首先需要在使用方的`package.json`中配置对它的依赖。如果应用内`HSP`和使用方在同一工程下,可以直接本地引用,例如:
要使用`HSP`中的接口,首先需要在使用方的`oh-package.json5`中配置对它的依赖。如果应用内`HSP`和使用方在同一工程下,可以直接本地引用,例如:
```json
// entry/src/main/module.json5
// entry/oh-package.json5
"dependencies": {
"library": "file:../library"
}
......
......@@ -63,6 +63,7 @@ OpenHarmony提供通用的应用特权和可由设备厂商针对不同设备单
| allowAbilityExcludeFromMissions | bool | false| 是否允许Ability不在任务栈中显示。 |
| allowAppUsePrivilegeExtension | bool | false|是否允许应用使用ServiceExtension、DataExtension。 |
| allowFormVisibleNotify | bool | false| 是否允许桌面卡片可见。 |
| allowAppShareLibrary | bool | false | 是否允许为其它应用提供[应用间`HSP`](../../application-dev/quick-start/cross-app-hsp.md)能力。
### 配置方式
......@@ -90,6 +91,7 @@ OpenHarmony提供通用的应用特权和可由设备厂商针对不同设备单
"allowAbilityExcludeFromMissions": true, // 允许Ability不在任务栈中显示
"allowAppUsePrivilegeExtension": true, // 允许应用使用ServiceExtension、DataExtension
"allowFormVisibleNotify": true // 允许桌面卡片可见
"allowAppShareLibrary": true // 允许应用提供应用间HSP能力
},
}
```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册