NAPI篇【1】——如何创建含NAPI的OpenHarmony工程

        笔者从事OpenHarmony的北向应用开发,关于NAPI的应用这里做一个笔记总结,包含NAPI的OpenHarmony工程的创建、cpp文件详解、如何编写NAPI函数等,都是基于笔者的开发经验和网上参考资料汇集而成,笔者也处于学习阶段,如有错误,欢迎指正。

一、NAPI的介绍

     1、简介

  NAPI,全称 Native API,是OpenHarmony系统中的一套原生模块拓展开发框架。基于Nodejs中的N-API开发,为开发者提供了JS与C/C++不同语言模块之间的相互访问,交互的能力,方便开发者使用C或者C++语言实现应用的关键功能。在应用中使用Native API会编译成动态库打包到应用中。

        个人理解:允许开发者用C/C++去编写一些功能函数,然后通过NAPI使得可以调用这些函数去完成特定的功能,如操作开发板中某个GPIO节点的状态(OpenHarmony并没有提供直接操作GPIO口状态的API),实现JS与C/C++不同语言模块之间的相互访问,交互的能力。

        2、目的优势:

(1)、OpenHarmony系统系统可以将框架层丰富的模块功能通过js接口开放给上层应用使用。

(2)、应用开发者也可以选择将一些对性能、底层系统调用有要求的核心功能用C/C++封装实现,再通过js接口使用,提高应用本身的执行效率。

二、创建含NAPI的Openharmony工程

        在进行OpenHarmony应用开发时,若要调用自己编写的NAPI函数,则必须建立一个支持NAPI的OpenHarmony工程。

        在DevEco Studio 3.0 Release版本中,OpenHarmony工程创建有自带了一个Native C++ hello的模板,我们只需新建该模板的一个工程即可,如下图所示。

         然而在DevEco Studio 4.0 Release版本,并没有提供OpenHarmony工程的Native C++ hello的模板;Native C++ 的模板创建的是Harmony工程的模板,如下图。

       下面演示如何创建一个支持NAPI的OpenHarmony工程,演示环境:

        电脑:Windows11

        Deveco Studio 版本:4.0.0.600

        1、首先使用Native C++ 的模板创建一个Harmony的NAPI工程。

        (1) Harmony的NAPI工程的目录如下

        2、创建一个OpenHarmony工程,并使之支持NAPI,分三步

        (1)按正常流程,创建一个OpenHarmony工程。创建好,目录如下

      (2)将Harmony的NAPI工程的../main目录下的cpp文件夹整个复制,粘贴到OpenHarmony工程的../main目录下。(为OpenHarmony工程添加支持NAPI所需要的包含c/c++源码、接口导出文件以及编译文件的文件夹)

        (3)将Harmony的NAPI工程目录...\entry\build-profile.json5文件中"buildOption"配置项的部分代码复制,然后粘贴到OpenHarmony工程目录...\entry\build-profile.json5文件中"buildOption"配置项的内容中去,如下图如所示。(为OpenHarmony工程添加支持NAPI的配置声明,使整个工程在编译时能够执行相应NAPI的编译链接的脚本文件CMakeLists.txt)

        (4)将Harmony的NAPI工程目录...\entry\oh-package.json5文件中"dependencies"配置项的部分代码复制,然后粘贴到OpenHarmony工程目录...\entry\oh-package.json5文件中"dependencies"配置项的内容中去,如下图如所示。(为OpenHarmony工程的引入调用NAPI函数时,添加验证依赖

        补充说明:"libentry.so": "file:./src/main/cpp/types/libentry",libentry对应cpp\types文件夹中的libentry文件夹,

        "libentry.so"对应...\cpp\types\libentry\oh-package.json5文件中的name配置项的值如下图。如果不进行这一步,调用NAPI的函数时,编译会有如下图的警告。

        至此、OpenHarmony工程支持NAPI的配置完成。

        3、验证

        只需要将Harmony的NAPI工程目录...\entry\src\main\ets\pages\Index.ets文件中内容复制,然后粘贴到OpenHarmony工程目录...\entry\src\main\ets\pages\Index.ets文件中,然后签名、编译下载到开发板验证NAPI的接口是否调用成功即可

参考资料:

1、napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程_napi构建方法-CSDN博客

2、【坚果派-坚果】Napi入门_libnapi-CSDN博客

ps:配置NAPI的cpp文件夹详解见NAPI篇【2】

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值