首页 > 编程语言 >HarmonyOS:Node-API实现跨语言交互(1)Node-API简介

HarmonyOS:Node-API实现跨语言交互(1)Node-API简介

时间:2024-10-26 12:20:43浏览次数:6  
标签:Node ArkTS C++ JS HarmonyOS API 交互

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ 
➤GitHub地址:https://github.com/strengthen
➤原文地址:https://www.cnblogs.com/strengthen/p/18503923
➤如果链接不是为敢技术的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

场景介绍

HarmonyOS Node-API是基于Node.js 8.x LTS的Node-API规范扩展开发的机制,为开发者提供了ArkTS/JS与C/C++模块之间的交互能力。它提供了一组稳定的、跨平台的API,可以在不同的操作系统上使用。

本文中如无特别说明,后续均使用Node-API指代HarmonyOS Node-API能力。

说明

HarmonyOS Node-API与Node.js 8.x LTS的Node-API规范的接口异同点,详见Node-API参考

一般情况下HarmonyOS应用开发使用ArkTS/JS语言,但部分场景由于性能、效率等要求,比如游戏、物理模拟等,需要依赖使用现有的C/C++库。Node-API规范封装了I/O、CPU密集型、OS底层等能力并对外暴露ArkTS/JS接口,从而实现ArkTS/JS和C/C++的交互。主要场景如下:

  • 系统可以将框架层丰富的模块功能通过ArkTS/JS接口开放给上层应用。

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

Node-API的组成架构

图1 Node-API的组成架构

  • Native Module:开发者使用Node-API开发的模块,用于在ArkTS侧导入使用。

  • Node-API:实现ArkTS与C/C++交互的逻辑。

  • ModuleManager:Native模块管理,包括加载、查找等。

  • ScopeManager:管理napi_value的生命周期。

  • ReferenceManager:管理napi_ref的生命周期。

  • NativeEngine:ArkTS引擎抽象层,统一ArkTS引擎在Node-API层的接口行为。

  • ArkCompiler ArkTS Runtime:ArkTS运行时。

Node-API的关键交互流程

图2 Node-API的关键交互流程

ArkTS和C++之间的交互流程,主要分为以下两步:

  1. 初始化阶段:当ArkTS侧在import一个Native模块时,ArkTS引擎会调用ModuleManager加载模块对应的so及其依赖。首次加载时会触发模块的注册,将模块定义的方法属性挂载到exports对象上并返回该对象。

  2. 调用阶段:当ArkTS侧通过上述import返回的对象调用方法时,ArkTS引擎会找到并调用对应的C/C++方法。

标签:Node,ArkTS,C++,JS,HarmonyOS,API,交互
From: https://www.cnblogs.com/strengthen/p/18503923

相关文章

  • 基于nodejs+vue基于的私人物品管理平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于私人物品管理的研究,现有研究主要以企业物品管理或公共物品管理为主,专门针对私人物品管理的研究较少。在国内外,对于物品管理的研究多集中在大型组织......
  • 基于nodejs+vue基于的食品销售系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于食品销售系统的研究,现有研究主要以传统的销售模式和管理方式为主。在国内外,虽然有不少企业已经在食品销售领域应用了信息化管理手段,但专门针对集会......
  • 基于nodejs+vue基于的诗文网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于诗文网站的研究,现有研究主要集中在传统诗文内容的呈现与简单交互功能方面。在国内外,诗文网站多以展示经典诗文作品、提供简单的检索功能为主。专门......
  • 关于node中cookie的相关研究
    在请求头中加入set-cookie字段,客户端收到这个Set-Cookie的ֽ应后,在之后的请求时会在Cookie中上这个值。一般格式可以参考如下Set-Cookie:token=dywuh1g87;Expires=Wed,11Aug202407:28:00GMT;Secure;HttpOnly了解一下cookie解释一下常用的几个属性Expires这......
  • python 访问openai assistant api(一)
    目录一、简介二、案例三、消息循环总结 一、简介使用Python访问OpenAIAssistantAPI(如GPT模型),你需要使用OpenAI提供的官方PythonSDK。官网介绍https://platform.openai.com/docs/api-reference/assistants目前只有简短的使用介绍,但是已经涵盖了所有需要注......
  • SAP SD STO单重定价 BAPI
    问题描述STO单创建交货单接口中,由于STO单的公司间-结算价为0而不能创建交货单,此时需要成本同事维护好成本,然后我们在接口中做重定价处理解决方案:刚开始没找到合适的BAPI,尝试录BDC发现不可行,查阅资料发现可用BAPI_PO_CHANGE ls_poitem-po_item=ls_crt-ebelp.......
  • 抖音抖店 API 请求获取宝贝详情数据的调用频率限制如何调整?
    抖音抖店API请求获取宝贝详情数据的调用频率限制通常无法直接由开发者自行随意调整,以下是一些相关的情况和可能的途径:一、遵循平台既定规则:首先要明确抖音开放平台针对不同的API接口、开发者账号类型以及业务场景等设定了固定的调用频率限制标准。开发者必须严格遵守这些......
  • HarmonyOS NEXT实战教程:菜谱App
    随着鸿蒙系统5.0的发布,兼容的机型越来越多,对于开发者来说机会也越来越多,大家不要气馁,学习鸿蒙肯定会有用武之地,我们要做的就是做好准备。今天跟大家分享实战教程是一个菜谱App。首页这个页面可能会让初学者望而生畏,看起来比较复杂。但是仔细分析一下并不太难。幽蓝君再啰嗦一句......
  • 7种大模型风险及API 管理应对策略
    概况:大模型(LLM)的发展带来的技术红利,以及企业业务逐渐向AI转型,LLM常见的安全漏洞、网络攻击手段变化已经成为企业要迫切关注的问题,本文来探讨一下,如何通过API管理策略有效防范LLM的风险。近年来,随着大型语言模型技术的迅猛发展,各行各业对AI应用或者业务与AI的结合的热情不断高......
  • HarmonyOS:Node-API实现跨语言交互
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18502733➤如果链接不是为敢技术的博客园地址,则可能是......