鸿蒙中native层的sdk详细解析

admin 2024年4月2日11:13:42评论17 views字数 727阅读2分25秒阅读模式

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

鸿蒙中native层的sdk详细解析

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

创建har包

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

鸿蒙中native层的sdk详细解析

鸿蒙中native层的sdk详细解析创建类以及函数

鸿蒙中native层的sdk详细解析

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

鸿蒙中native层的sdk详细解析

napi的创建调用

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

鸿蒙中native层的sdk详细解析

napi中进行重命名以及注册

鸿蒙中native层的sdk详细解析

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

鸿蒙中native层的sdk详细解析

因为在arkts中是无法直接调用so的接口,需要通过napi中转到ets中进行调用

下面就是so中导出的接口通过napi中转后,其他第三方就可以调用so的接口了。

鸿蒙中native层的sdk详细解析

设置so导出接口

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

鸿蒙中native层的sdk详细解析

调用so接口

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

鸿蒙中native层的sdk详细解析

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

鸿蒙中native层的sdk详细解析

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

鸿蒙中native层的sdk详细解析

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

鸿蒙中native层的sdk详细解析

原文始发于微信公众号(编码安全):鸿蒙中native层的sdk详细解析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月2日11:13:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   鸿蒙中native层的sdk详细解析https://cn-sec.com/archives/2618881.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息