OpenHarmony—应用间HSP开发指导

应用间HSP用于不同应用间的代码、资源共享。 应用间HSP的宿主应用是一种特殊状态的应用,只能由一个HSP组成,不会独立运行在设备上,而是被普通应用模块的依赖项引用。当普通应用运行时,通过动态调用的方式使用应用间HSP提供的能力,从而实现应用自身所需要的功能。

注意事项

1.  应用间HSP的代码会运行在开发者应用的进程中,调用相关代码时,需要做好异常捕获与容错处理,防止由于应用间HSP功能异常导致的稳定性问题。

2.  一个应用可以同时依赖多个应用间HSP。

3.  应用间HSP会影响开发者应用自身的启动时间,依赖过多的应用间HSP可能会导致启动时延发生明显的劣化,建议将依赖的数目控制在16个以内。

4.  应用间HSP安装时需要对特权权限进行校验,如果想要开发应用间HSP,需要配置allowAppShareLibrary应用特权,具体配置方式参考 应用特权配置指南 。

应用间HSP的使用

应用间HSP会分为两部分对外发布:

一部分为 HAR ,HAR包中不会包含具体的功能实现代码,而仅仅包含导出的对象与方法,所以体积很小。应用开发者将HAR包集成到自身的工程中,然后就可以通过调用HAR包中提供的对象与方法完成自身的应用功能。

另外一部分为HSP,这部分为应用间HSP的具体实现,里面包含js/ts代码、C++库、资源和配置文件。这部分会上架到应用市场或者集成到系统版本中。

集成应用间HSP的HAR

HAR中的index.ets文件是应用间HSP导出的声明文件的入口,所有需要导出的接口,统一在index.ets文件中定义。index.ets文件路径如下:

liba
├── src
│   └── main
│       ├── ets
│       │   ├── pages
│       │   └── index.ets
│       ├── resources
│       └── module.json5
└── oh-package.json5

对外暴露的接口,需要在入口文件index.ets中声明:

index.ets内容样例如下:

// liba/src/main/ets/index.ets
export { hello, foo1, foo2, nativeMulti, UIComponent } from './ui/MyUIComponent'

其中UIComponent为导出的ArkUI组件,hello()、foo1()与foo2()为应用间HSP导出的ts方法,nativeMulti()方法为应用间HSP导出的native方法。具体实现如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值