napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程

这篇具有很好参考价值的文章主要介绍了napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

NAPI(Native API)是OpenHarmony系统中的一套原生模块扩展开发框架,它基于Node.js N-API规范开发,为开发者提供了JavaScript与C/C++模块之间相互调用的交互能力。如下图所示:

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

这套机制对于鸿蒙系统开发的价值有两方面:

  • OpenHarmony系统系统可以将框架层丰富的模块功能通过js接口开放给上层应用使用。
  • 应用开发者也可以选择将一些对性能、底层系统调用有要求的核心功能用C/C++封装实现,再通过js接口使用,提高应用本身的执行效率。

本文将通过一个Hello world的实例来演示如何在DevEco Studio上开发一个NAPI工程的过程。

工程准备

DevEco Studio下载

本实例中使用的是DevEco Studio 3.0 Release版本的IDE,我们需要在官网下载DevEco Studio 3.0 Release版即可,DevEco Studio的安装使用请参照DevEco Studio使用指南。

SDK下载

下载安装完DevEco Studio工具后,我们需要下载OpenHarmony的SDK,具体步骤如下(更多详细信息请参照DevEco Studio使用之配置开发环境):

  • 运行已安装的DevEco Studio,首次使用,请选择Do not import settings,单击OK。

  • 进入DevEco Studio操作向导页面,修改npm registry,DevEco Studio已预置对应的仓(默认的npm仓,可能出现部分开发者无法访问或访问速度缓慢的情况),直接单击Start using DevEco Studio进入下一步。 [图片上传失败…(image-2e56d3-1713015725747)]

  • 设置Node.js信息,可以指定本地已安装的Node.js(Node.js版本要求为v14.19.1及以上,且低于v15.0.0;对应的npm版本要求为6.14.16及以上,且低于7.0.0版本);如果本地没有合适的版本,可以选择Download按钮,在线下载Node.js。本示例以下载Node.js为例,选择下载源和存储路径后,单击Next进入下一步。

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • 等待Node.js安装完成,然后单击Finish进入下一步。

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • SDK Componets Setup界面,设置OpenHarmony SDK下载路径,如果需要开发HarmonyOS应用,请勾选上HarmonyOS SDK,单击Next进入下一步。

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • 在弹出的SDK下载信息页面,单击Next,并在弹出的License Agreement窗口,阅读License协议,需同意License协议后,单击Next开始下载SDK。

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • 等待OpenHarmony SDK及工具下载完成,单击Finish,这样SDK就安装完成。

创建工程

下载并配置完SDK后,我们就可以开始创建工程了。DevEco Studio已经自带了一个Native C++ hello的模板,我们只需新建该模板的一个工程即可。

  • 打开DevEco Studio,点击左边Create Project,将会弹出对应新建工程界面。
  • 选择OpenHarmony下的Native C++模板,单击Next。

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • 配置工程 选择完模板后,会弹出配置工程界面,在该界面我们需要配置工程名字,SDK版本以及Model,配置完后点击Finish,这样我们一个helloworld工程就创建完成了。

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

源码实现

新建完工程后,实现napi接口的hello.cpp源码在工程的entry/src/main/cpp目录下。

注册napi模块

先定义一个模块,对应结构体为napi_module,指定当前NAPI模块对应的模块名以及模块注册对外接口的处理函数,具体扩展的接口在该函数中声明,后面说明。 模块定义好后,调用NAPI提供的模块注册函数napi_module_register(napi_module* mod)函数注册到系统中。

static napi_module demoModule = {
    .nm_version =1,
    .nm_flags = 0,
    .nm_filename = nullptr,
    .nm_register_func = Init,
    .nm_modname = "hello",
    .nm_priv = ((void*)0),
    .reserved = { 0 },
};
extern "C" __attribute__((constructor)) void RegisterHelloModule(void)
{
    napi_module_register(&demoModule);
}

接口定义

napi_property_descriptor结构体中声明了napi中对应的接口,如下所示,其中Add对应的使Native C++的接口,其应用端的接口对应为add,napi通过napi_define_properties接口将napi_property_descriptor结构体中的2个接口绑定在一起,并通过exports变量对外导出,使应用层可以调用add方法。

static napi_value Init(napi_env env, napi_value exports)
{
    napi_property_descriptor desc[] = {
        { "getHelloString", nullptr, getHelloString, nullptr, nullptr, nullptr,
         napi_default, nullptr }
    };
    napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
    return exports;
}

接口实现

以下为getHelloString接口业务实现代码:

static napi_value getHelloString(napi_env env, napi_callback_info info) {
  napi_value result;
  std::string words = "Hello Napi";
  if (napi_create_string_utf8(env, words.c_str(), words.length(), &result) != napi_ok) {
    return nullptr;
  }
  return result;
}

到此,我们已经对外导出了1个napi接口,应用端可以调用这个接口。

调用接口

首先,在调用napi前,我们需要导入napi库:

import testNapi from "libentry.so"

导入完库后,我们就可以通过导入的变量直接调用对应的napi接口:

testNapi.getHelloString();

而工程创建后,在index.ets文件(在工程的entry/src/main/ets/pages目录下)中系统已经默认生成了一个hello world的文本区域,且通过点击文本区域,可以调用getHelloString的napi接口,代码如下:

import testNapi from "libentry.so"
@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            this.message = testNapi.getHelloString()
            console.log("Test NAPI get string : " + this.message);
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

这时DevEco Studio工具会提示getHelloString接口未定义,我们需要在对应的index.d.ts文件(在工程的entry/src/main/cpp/types/libentry目录下)中加上该接口的定义:

export const getHelloString: () => string;

至此,源码实现已完成,我们可以通过点击DevEco Studio工具上Build选项中的Build Hap(s)进行编译。

安装调试

应用通过DevEco Studio工具安装到开发板的步骤:

连接开发板

将开发板连接电脑,工具会自动识别到设备,如下图

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

配置签名

应用第一次安装到设备上的时候,是需要进行签名配置,否则无法进行安装。具体签名步骤:

  • 点击工程配置按钮 点击DevEco Studio工具右上角的Project Structure按钮,弹出工程配置界面

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • 配置自动签名 弹出工程配置界面,选择Project >>Signing Configs页面,在选中自动签名即可,此时工具会自动生成签名信息:

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

  • 确定签名 工具在自动生成签名信息后,直接点击ok按钮即可完成自动签名操作

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

安装运行

配置完签名后,我们就可以直接点击DevEco Studio工具上运行按钮进行安装运行应用了

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

调试

应用安装运行后,在板子上我们可以在屏幕的中央看到Hello World的显示,并且我们点击Hello World后可以在DevEco Studio工具的Log窗口查看到对应的调试信息

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

由于系统的调试信息也在log窗口显示,且信息量大,不方便我们查看自己的调试信息,所以我们可以在log窗口设置过滤信息,让窗口只显示我们过滤关键字的信息。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程,移动开发,HarmonyOS,OpenHarmony,java,openharmony,harmonyos,鸿蒙开发,移动开发文章来源地址https://www.toymoban.com/news/detail-851347.html

到了这里,关于napi系列学习基础篇——如何通过DevEco Studio开发一个NAPI工程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [HarmonyOS]主题课:使用DevEco Studio高效开发

    单选题 1. 用哪一种装饰器修饰的组件可作为页面入口组件? A. @Component B. @Entry C. @Preview D. @Builder 答:B 2. ArkTS Stage模型支持API Version 9,关于其工程目录结构说法正确的是? A. oh-package.json5用于存放应用级配置信息,包括签名、产品配置等 B. build-profile.json5用于配置三方包声明

    2024年01月17日
    浏览(37)
  • HarmonyOS开发第一步,熟知开发工具DevEco Studio

    HarmonyOS开发第一步,熟知开发工具DevEco Studio

    俗话说的好,工欲善其事,必先利其器,走进HarmonyOS第一步,开发工具必须先行,当然了,关于开发工具的使用,官网和其他的博客也有很多的讲解,但是并没有按照常用的功能进行概述,如果需要某个功能,还得需要进行检索查找,十分的不便,基于此,本文主要以常见的

    2024年02月11日
    浏览(670)
  • HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:使用低代码进行开发

    HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:使用低代码进行开发

    OpenHarmony低代码开发方式,具有丰富的UI界面编辑功能,遵循JS、TS开发规范 ,通过可视化界面开发方式快速构建布局,可有效降低用户的时间成本和提升用户构建UI界面的效率。 说明 支持使用低代码进行JS/eTS页面开发,本章节以开发eTS页面为例,介绍低代码功能及使用方法。

    2024年02月19日
    浏览(33)
  • HarmonyOS应用开发-第一章-DevEco Studio的安装

    HarmonyOS应用开发-第一章-DevEco Studio的安装

            本栏可以帮助正在学习HarmonyOS应用开发的开发者快速上手和掌握。         首先下载DevEco Studio(HarmonyOS应用的集成开发境),点击:IDE下载页面,点击立即下载。         下载完成后,双击运行安装程序,进入安装向导。         随后一直点击 \\\"Next\\\" 直到安装完成

    2024年02月17日
    浏览(32)
  • HarmonyOS应用开发工具DevEco Studio安装与使用

    HarmonyOS应用开发工具DevEco Studio安装与使用

    语雀知识库地址:语雀HarmonyOS知识库 飞书知识库地址:飞书HarmonyOS知识库 知识库内容逐步完善中… 工欲善其事必先利其器,要编写HarmonyOS应用就需要用到官方提供的IDE工具来编写相应的代码。 在鸿蒙开发者官网,其提供了官方的开发IDE——DevEco Studio(最新版本3.1.1 Release)

    2024年02月19日
    浏览(35)
  • HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:编译构建概述

    目录 OpenHarmony构建体系 构建工具Hvigor 构建插件hvigor-ohos-plugin 工程目录及配置文件说明 如何构建应用/服务 启动应用/服务构建 查看编译过程

    2024年02月22日
    浏览(35)
  • DevEco Studio开发工具下载、安装(HarmonyOS开发)_For Mac

    DevEco Studio开发工具下载、安装(HarmonyOS开发)_For Mac

    初学HarmonyOS开发,DevEco Studio开发工具的安装和使用是必须的。 (注:不多废话,跟着下面流程操作下载、安装DevEco Studio即可。) 1.官网下载地址: https://developer.harmonyos.com/cn/develop/deveco-studio 2. 进入官网,选择 “开发” —— “ 应用开发 ” —— “ DevEco Studio ” 3. 找到下载

    2024年02月05日
    浏览(32)
  • HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:创建OpenHarmony工程

    目录 创建和配置新工程 将原子化服务工程改为应用工程 当开始开发一个OpenHarmony应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。 说明 在运行DevEco Studio工程时,建议每一个运行窗口有2GB以上的可用内存空间。 通过如下

    2024年01月25日
    浏览(7)
  • HarmonyOS学习 第2节 DevEco Studio工程介绍

    HarmonyOS学习 第2节 DevEco Studio工程介绍

    工程配置页 界面布局介绍 代码编辑区、通知栏、工程目录区、预览区 再次切换到 Project 在右侧Previewer,点击打开 本来想着运行到测试机,结果报错了,版本不匹配;测试机3.0鸿蒙版本;只能用自带模拟器了。

    2024年02月04日
    浏览(103)
  • 【HarmonyOS】【DevEco Studio】ohpm安装失败该如何解决?

    【】 HarmonyOS、DevEco Studio、ohpm安装失败 【问题背景及解决方案】 最近遇到很多DevEco Studio安装ohpm失败的问题,下面给大家介绍几种出现的问题以及解决方案: 1、ohpm not set up,报错截图如下: ​ 解决方案: 排查下电脑的注册表中是否加了防止cmd中文乱码的东西,有的

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包