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

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

3天内不再提示

【鸿蒙】NAPI 框架生成工具实现流程

王程 来源: jf_75796907 作者: jf_75796907 2024-02-28 17:00 次阅读

NAPI 框架生成工具 可以根据用户指定路径下的 ts(typescript)接口文件一键生成 NAPI 框架代码、业务代码框架、GN 文件等。在开发 JS 应用与 NAPI 间接口时,底层框架开发者无需关注 Nodejs 语法、C++ 与 JS 之间的数据类型转换等上层应用转换逻辑,只关注底层业务逻辑即可。

那他的实现过程,以及在实际开发中该如何使用呢?为此分析了下代码,分解其过程如下。

1. 纯 C++ 代码实现

该部分纯 C++ 实现函数,不需要考虑 JS 环境,实现解耦。

wKgaomXe9ZOAfxa9AABiwFsjy90887.png

2. NAPI 工具类

实现 C++ 与 JS 之间的数据类型转换等上层应用转换逻辑。

wKgZomXe9Z2AVcX4AADFtiX1dW8421.png

3. NAPI 函数映射与模块注册

实现 NAPI 函数映射与模块注册

wKgaomXe9aaAVVPcAAFsx1sj8a0012.png

4. 北向调用

wKgZomXe9a2ASKWVAADK5ZgYOFw008.png

全部流程为

wKgaomXe9bSAXohLAAL7pE8ldPE939.png


为了能让大家更好的学习鸿蒙 (OpenHarmony) 开发技术,这边特意整理了《鸿蒙 (OpenHarmony)开发学习手册》,希望对大家有所帮助:

《鸿蒙(Harmony OS)开发学习手册》

入门必看:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.应用开发导读(ArKTS)
2.……

wKgaomXW6N2AJp9uAAQXRxEAprs547.png

HarmonyOS概念:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.系统定义
2.技术框架
3.技术特性
4.系统安全

wKgaomXW6OSAFcCRAAV2zd2X_1s891.png

快速入门:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.基本概念
2.构建第一个ArkTS应用
3.…

wKgZomXW6PuAA7wEAAKx6By_2Z8377.png

开发基础知识:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS
9…

wKgZomXW6QaAM4niAAQzrXUUPik914.png

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

wKgZomXW6RKATahiAAKz-zSMnR4040.png



审核编辑 黄宇

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

    关注

    55

    文章

    1630

    浏览量

    42120
  • HarmonyOS
    +关注

    关注

    79

    文章

    1841

    浏览量

    29266
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS开发实例:【HarmonyHttpClient】网络框架

    鸿蒙上使用的Http网络框架,里面包含纯Java实现的HttpNet,类似okhttp使用,支持同步和异步两种请求方式;还有鸿蒙版retrofit,和Android版Retrofit相
    的头像 发表于 04-12 16:58 300次阅读
    <b class='flag-5'>鸿蒙</b>OS开发实例:【HarmonyHttpClient】网络<b class='flag-5'>框架</b>

    鸿蒙原生应用元服务备案实操基本流程

    一、鸿蒙原生应用元服务备案流程和方式是一样的,都是APP备案的流程。 二、通过华为云、阿里云等服务商进行备案。 三、进行鸿蒙应用元服务备案前需要注册域名、购买有服务器、域名进行了备案。
    发表于 04-09 09:49

    深圳市24年,实现鸿蒙原生应用数占全国总量10%以上

    不吹不捧,鸿蒙自从24年的星河版发布会之后。纯血鸿蒙已经开启大规模的行动,首批 200 + 鸿蒙原生应用已经在加速开发,先锋垂域齐备,覆盖便捷生活、出行文旅、金融理财、社交资讯、生产力工具
    发表于 03-04 21:42

    OpenHarmony 之 NAPI 框架介绍

    NAPI 是什么 NAPI 的概念源自 Nodejs,为了实现 javascript 脚本与 C++ 库之间的相互调用,Nodejs 对 V8 引擎的 api 做了一层封装,称为 NAPI
    的头像 发表于 02-01 17:34 307次阅读
    OpenHarmony 之 <b class='flag-5'>NAPI</b> <b class='flag-5'>框架</b>介绍

    鸿蒙OpenHarmony NAPI技术-基础学习

    NAPI(Native API)是OpenHarmony系统中的一套原生模块扩展开发框架,它基于Node.js N-API规范开发,为开发者提供了JavaScript与C/C++模块之间相互调用的交互能力。可以在NodeJs官网查看各种
    的头像 发表于 01-19 16:57 336次阅读
    <b class='flag-5'>鸿蒙</b>OpenHarmony <b class='flag-5'>NAPI</b>技术-基础学习

    鸿蒙南向开发—OpenHarmony技术编译构建框架

    实现编译和打包,该子系统主要包括:模块、部件、子系统、产品。 编译子系统的各部分关系,主要体现为: 子系统是某个路径下所有部件的集合,一个部件只能属于一个子系统。 部件是模块的集合,一个模块只能归属于
    发表于 01-04 16:47

    教程分享!OpenHarmony之NAPI框架介绍

    NAPI 是什么 NAPI 的概念源自 Nodejs,为了实现 javascript 脚本与 C++库之间的相互调用,Nodejs 对 V8 引擎的 api 做了一层封装,称为 NAPI
    的头像 发表于 11-30 12:15 670次阅读
    教程分享!OpenHarmony之<b class='flag-5'>NAPI</b><b class='flag-5'>框架</b>介绍

    如何利用Linux下的工具来自动生成实用的状态机框架

    (Finite State Machine),是一种应用非常广泛的软件设计模式(Design Pattern)。本文介绍如何构建基于状态机的软件系统,以及如何利用Linux下的工具来自动生成实用的状态机框架
    的头像 发表于 11-25 14:15 720次阅读
    如何利用Linux下的<b class='flag-5'>工具</b>来自动<b class='flag-5'>生成</b>实用的状态机<b class='flag-5'>框架</b>?

    OpenHarmony之NAPI框架介绍

    NAPI OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用层基于 javascript 语言开发,而系统框架层则基于 C++语言。它们之间需要一个桥梁来实现两种语言代码之间
    发表于 11-23 15:36

    华为鸿蒙系统

    ]^ 2021年11月17日,HarmonyOS迎来第三批开源,新增开源组件769个,涉及工具、网络、文件数据、UI、框架、动画图形及音视频7大类。^ [57]^ 2022年8月,“在鸿”品牌重磅
    发表于 11-02 19:39

    鸿蒙 OS 应用开发初体验

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

    Qt For OpenHarmony

    For OpenHarmony渲染流程:Qt Quick采用自成体系的Scene Graph基于OpenGL标准接口实现,QPA OpenHarmony插件基于XCompent生成EGL Surface,并通过QPA
    发表于 09-15 15:39

    如何生成状态机框架

    生成状态机框架 使用FSME不仅能够进行可视化的状态机建模,更重要的是它还可以根据得到的模型自动生成用C++或者Python实现的状态机框架
    的头像 发表于 09-13 16:54 651次阅读
    如何<b class='flag-5'>生成</b>状态机<b class='flag-5'>框架</b>

    使用VVAS调用HLS生成硬件加速器的主要流程

    本篇博客介绍 VVAS 框架所支持调用的 H/W(HLS) 内核。 H/W 内核指的是使用 HLS 工具生成的在 FPGA 部分执行的硬件功能模块。
    的头像 发表于 08-04 11:00 381次阅读
    使用VVAS调用HLS<b class='flag-5'>生成</b>硬件加速器的主要<b class='flag-5'>流程</b>

    NAPI 类对象导出及其生命周期管理(下)

    NAPI 类对象导出及其生命周期管理(下)
    的头像 发表于 05-16 10:25 1574次阅读
    <b class='flag-5'>NAPI</b> 类对象导出及其生命周期管理(下)