鸿蒙(Harmony OS)中Native层的SDK详细解析

描述

鸿蒙中支持har包和hsp包的创建,其中har包是静态共享库,编译后会生成一个以har为后缀的文件。Hsp是动态共享包,编译后生成一个以hsp为后缀的文件。

HAR

Index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在Index.ets文件中导出。在编译构建HAR的过程中,不会将模块中的C++代码直接打包进.har文件中,而是将C++代码编译成动态依赖库.so文件放置在.har文件中的libs目录下。

创建har包

选择static library方式,并且包含native的选项

HARHAR   创建类以及函数 HAR  

在CMaakeLists.txt文件中包含类的cpp文件,才能进行编译

HAR

napi的创建调用

将c++的代码转换为napi方式去做调用

HAR  

napi中进行重命名以及注册

HAR  

将napi的函数进行设置导出共ark语言调用也就是ets中调用(这个的导出也就是so的接口导出)

HAR  

因为在arkts中是无法直接调用so的接口,需要通过napi中转到ets中进行调用 下面就是so中导出的接口通过napi中转后,其他第三方就可以调用so的接口了。

HAR

设置so导出接口

最后需要再index.ets文件中设置arkts的接口导出,接口导出需要指明到具体文件上

HAR

调用so接口

生成har包后,就可将har包放到要调用的代码目录中了,放在entery的目录上即可

HAR  

安装har包到项目中,前面是定义的har包的名称,后面指定的是放到目录中的har包。接着会提示错误,最后,只要执行install 就可以了,这样就会将har包安装到项目中了

HAR  

项目中调用har包的导出接口,需要先用import方式导入

HAR  

安装在鸿蒙手机中,执行下就可看到结果

HAR  



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分