鸿蒙中支持har包和hsp包的创建,其中har包是静态共享库,编译后会生成一个以har为后缀的文件。Hsp是动态共享包,编译后生成一个以hsp为后缀的文件。
Index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在Index.ets文件中导出。在编译构建HAR的过程中,不会将模块中的C++代码直接打包进.har文件中,而是将C++代码编译成动态依赖库.so文件放置在.har文件中的libs目录下。
创建har包
选择static library方式,并且包含native的选项
创建类以及函数
在CMaakeLists.txt文件中包含类的cpp文件,才能进行编译
napi的创建调用
将c++的代码转换为napi方式去做调用
napi中进行重命名以及注册
将napi的函数进行设置导出共ark语言调用也就是ets中调用(这个的导出也就是so的接口导出)
因为在arkts中是无法直接调用so的接口,需要通过napi中转到ets中进行调用
下面就是so中导出的接口通过napi中转后,其他第三方就可以调用so的接口了。
设置so导出接口
最后需要再index.ets文件中设置arkts的接口导出,接口导出需要指明到具体文件上
调用so接口
生成har包后,就可将har包放到要调用的代码目录中了,放在entery的目录上即可
安装har包到项目中,前面是定义的har包的名称,后面指定的是放到目录中的har包。接着会提示错误,最后,只要执行install 就可以了,这样就会将har包安装到项目中了
项目中调用har包的导出接口,需要先用import方式导入
安装在鸿蒙手机中,执行下就可看到结果