0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

哆啦安全 来源:编码安全 2024-04-02 14:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

375edc92-f09c-11ee-a297-92fbcf53809c.png

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

创建har包

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

3769b4f0-f09c-11ee-a297-92fbcf53809c.png377496a4-f09c-11ee-a297-92fbcf53809c.png   创建类以及函数 377e46d6-f09c-11ee-a297-92fbcf53809c.png  

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

37878c46-f09c-11ee-a297-92fbcf53809c.png

napi的创建调用

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

37995700-f09c-11ee-a297-92fbcf53809c.png  

napi中进行重命名以及注册

37a61f62-f09c-11ee-a297-92fbcf53809c.png  

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

37aa526c-f09c-11ee-a297-92fbcf53809c.png  

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

37b26b00-f09c-11ee-a297-92fbcf53809c.png

设置so导出接口

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

37bdd274-f09c-11ee-a297-92fbcf53809c.png

调用so接口

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

37cce692-f09c-11ee-a297-92fbcf53809c.png  

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

37d11456-f09c-11ee-a297-92fbcf53809c.png  

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

37dbc022-f09c-11ee-a297-92fbcf53809c.png  

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

37eb6c5c-f09c-11ee-a297-92fbcf53809c.png  



审核编辑:刘清

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

    关注

    0

    文章

    5

    浏览量

    10981
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35536

原文标题:鸿蒙(Harmony OS)中Native层的SDK详细解析

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙OS开发实例:【Native C++】

    使用DevEco Studio创建一个Native C++应用。应用采用Native C++模板,实现使用NAPI调用C标准库的功能。使用C标准库hypot接口计算两个给定数平方和的平方根。在输入框输入两个数字,点击计算结果按
    的头像 发表于 04-14 11:43 4269次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b>开发实例:【<b class='flag-5'>Native</b> C++】

    鸿蒙OS与Fuchsia OS的异同

    之外。在华为的PPT,华为声称鸿蒙内核的IPC性能是Fuchsia的5倍。这是相当夸张的一个性能优势。至于华为是如何做到的,我是非常非常好奇的,期待华为开源鸿蒙OS(星星眼)。架构图
    发表于 09-23 11:42

    跟阿斌一起学鸿蒙(4). 分布式Hello Harmony的N种写法

    Harmony。在鸿蒙OS,FA与FA的协作,有三种方式:* 启动,即一个FA启动另一个FA这严格来说并不算是一个协作,只是与别的操作系统类似,鸿
    发表于 12-07 14:36

    跟阿斌一起学鸿蒙(4). 分布式Hello Harmony的N种写法

    。FA/FA模式的Hello Harmony,就是我说Hello, 你说Harmony。在鸿蒙OS,FA与FA的协作,有三种方式:* 启动
    发表于 12-10 10:52

    跟阿斌一起学鸿蒙(4). 分布式Hello Harmony的N种写法

    Harmony。在鸿蒙OS,FA与FA的协作,有三种方式:* 启动,即一个FA启动另一个FA这严格来说并不算是一个协作,只是与别的操作系统类似,鸿
    发表于 12-10 14:59

    鸿蒙os系统是什么意思 鸿蒙os系统有什么作用

    毫秒级。鸿蒙OS实现模块化耦合,对应不同设备可弹性部署,鸿蒙OS有三架构,第一是内核,第二
    发表于 12-17 11:34

    华为系统升级鸿蒙os

    出色,这也让更多的花粉们期待鸿蒙OS系统正式版发布,而就在近日,华为官方再次对外推送了Harmony OS Beta3,并且在Bate 3系统版本中新增了很多重磅功能,到底都有哪些值得
    发表于 07-28 07:56

    华为鸿蒙Harmony使用WIFI/IP连接调试的步骤有哪些呢

    华为鸿蒙Harmony使用WIFI/IP连接调试1、先打开SDK所在目录,例如:D:\HarmonyOS\Sdk\toolchains,然后打开powershell,如下图2、输入一下
    发表于 05-24 15:20

    使用React Native构建OS X桌面应用

    来自俄罗斯新西伯利亚的开发者Dima日前在GitHub上开源了一款名为React Native Desktop的开发利器,可以让开发者使用React Native构建OS X桌面应用程序,并分享了
    发表于 10-11 09:36 0次下载
    使用React <b class='flag-5'>Native</b>构建<b class='flag-5'>OS</b> X桌面应用

    鸿蒙OS优于安卓 未来将开源

    如约,在今天下午的HDC2019华为开发者大会上,余承东正式发布了鸿蒙操作系统——Harmony OS,基于微内核的全场景分布式OS
    的头像 发表于 08-09 17:30 2741次阅读

    鸿蒙OS正式发布 天生安全流畅

    HDC2019华为开发者大会上,华为全新操作系统一一Harmony OS鸿蒙OS)正式发布,天然无root,从源头提升系统安全,天生流畅。
    发表于 08-09 17:20 1179次阅读

    滴滴出行将支持Harmony OS2.0,余承东还宣布鸿蒙的开源路标

    据爆料,滴滴出行支持 Harmony OS2.0,并且鸿蒙手表里也支持滴滴 APP,用手表就能打车。
    的头像 发表于 09-22 12:45 2800次阅读

    harmony os 2.0报名入口 如何报名harmonyos2.0报名?

    升级,但是基本都是针对发布不久的新型旗舰,所以受众面并不是很广。 鸿蒙OS2.0开启第二轮公测,我们可以发现不少的端机型,华为 Harmony O
    的头像 发表于 06-08 12:10 6023次阅读

    史上增长最快的操作系统!Harmony OS设备接入量超过1.5亿,鸿蒙3.0预览版来了!鸿蒙生态圈已稳!

    Harmony OS正式迭代了三次,特别是2021年9月份鸿蒙接入设备量超过1亿,移动操作系统市场格局逐渐被打破。鸿蒙生态的最新进展如何?备受期待的
    的头像 发表于 10-24 08:00 2510次阅读

    鸿蒙OS和开源鸿蒙什么关系?

    内核,其他功能都以模块的形式存在。     华为用的是鸿蒙OS 我们都知道,华为手机的鸿蒙OS是可以运行安卓软件的,是因为系统中有安卓兼容
    的头像 发表于 01-30 15:44 2082次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b>和开源<b class='flag-5'>鸿蒙</b>什么关系?