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

    浏览量

    10795
  • HarmonyOS
    +关注

    关注

    79

    文章

    1864

    浏览量

    29268

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

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

收藏 人收藏

    评论

    相关推荐

    鸿蒙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

    鸿蒙 OS 应用开发初体验

    的操作系统平台和开发框架。HarmonyOS 的目标是实现跨设备的无缝协同和高性能。 DevEco Studio 对标 Android Studio,开发鸿蒙 OS 应用的 IDE。 启动页面
    发表于 11-02 19:38

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

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

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

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

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

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

    华为鸿蒙OS手机版如期而至

      华为消费者业务软件部副总裁杨海松表示,到今天为止,参与鸿蒙开发项目的开发者数量已超过10万,硬件方面的合作伙伴从之前的5家增加到了10家。今年已有美的、九阳、老板电器、海雀科技搭载鸿蒙OS,预计到今年年底,将会有40+的 S
    的头像 发表于 12-16 15:55 1767次阅读

    华为Harmony OS 2.0手机Beta版刷机包流出

    IT360 论坛放出了三款 Mate 30 Pro 机型的华为鸿蒙 Harmony OS 2.0 手机系统 Beta 版固件全量包,仅包括华为 Mate 30 Pro 5G 的三个版本。  
    的头像 发表于 01-25 09:20 7061次阅读

    我们该如何看待Harmony OS里的Android痕迹

    华为将在6月2日晚8点举办鸿蒙操作系统及华为全场景新品发布会。官方微博也在同一时间更名为Harmony OS,同时更新了鸿蒙操作系统的开机视频。——
    发表于 06-24 15:02 804次阅读

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

    开源鸿蒙(Open Harmony鸿蒙系统愿来的设计初衷,就是让所有设备都可以运行一个系统,但是每个设备的运算能力和功能都不同,所以内核的设计上,采用了微内核的设计,除了最基础的功能放在
    的头像 发表于 01-30 15:44 422次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b>和开源<b class='flag-5'>鸿蒙</b>什么关系?