18c339a94Sopenharmony_ci## NAPI 开发教程
28c339a94Sopenharmony_ci
38c339a94Sopenharmony_ci### 背景
48c339a94Sopenharmony_ci
58c339a94Sopenharmony_ci#### Node-API 介绍
68c339a94Sopenharmony_ci
78c339a94Sopenharmony_ciNode-API(以前称为 N-API)是用于构建原生插件的 API。它独立于底层 JavaScript 运行时,并作为 ’Node‘.js 本身的一部分进行维护。此 API 将在 ’Node‘.js 的各个版本中保持稳定的应用二进制接口 (ABI)。它旨在将插件与底层 JavaScript 引擎的变化隔离开来,并允许为一个主要版本编译的模块无需重新编译即可在以后的 ’Node‘.js 主要版本上运行。[ABI 稳定性](docs/guides/abi-stability/) 指南提供了更深入的解释。
88c339a94Sopenharmony_ci
98c339a94Sopenharmony_ci插件是使用标头为 [C++ 插件](api/addons.html) 的部分中概述的相同方法/工具构建/打包的。唯一的区别是原生代码使用的 API 集。
108c339a94Sopenharmony_ci
118c339a94Sopenharmony_ciNode-API 公开的 API 通常用于创建和操作 JavaScript 值。概念和操作通常映射到 ECMA-262 语言规范中指定的想法。API 具有以下属性:
128c339a94Sopenharmony_ci
138c339a94Sopenharmony_ci- 所有 Node-API 调用都会返回 `napi_status` 类型的状态代码。此状态指示 API 调用是成功还是失败。
148c339a94Sopenharmony_ci
158c339a94Sopenharmony_ci- API 的返回值通过 out 参数传递。
168c339a94Sopenharmony_ci
178c339a94Sopenharmony_ci- 所有 JavaScript 值都被抽象为一个名为 `napi_value` 的不透明类型。
188c339a94Sopenharmony_ci
198c339a94Sopenharmony_ci- 如果出现错误状态代码,可以使用 `napi_get_last_error_info` 获取附加信息。可以在错误处理部分 [错误处理](api/n-api.html#error-handling) 中找到更多信息。
208c339a94Sopenharmony_ci
218c339a94Sopenharmony_ci
228c339a94Sopenharmony_ciNode-API 是一种 C API,可确保跨版本和不同编译器级别的 ABI 稳定性。C++ API 可以更容易使用。为了支持使用 C++,该项目维护了一个名为 `node-addon-api` 的 C++ 封装器模块。这个封装器提供了一个可内联的 C++ API。使用 `node-addon-api` 构建的二进制文件将取决于 导出的基于 Node-API C 的函数的符号。`node-addon-api` 是编写调用 Node-API 的代码的更有效方式。
238c339a94Sopenharmony_ci
248c339a94Sopenharmony_ci
258c339a94Sopenharmony_ci
268c339a94Sopenharmony_ci---
278c339a94Sopenharmony_ci
288c339a94Sopenharmony_ci
298c339a94Sopenharmony_ci
308c339a94Sopenharmony_ci#### Native API(NativeDevelopKit)
318c339a94Sopenharmony_ci
328c339a94Sopenharmony_ciNative API是OpenHarmony SDK上提供的一组native开发接口与工具集合(也称为NativeDevelopKit),方便开发者使用C或者C++语言实现应用的关键功能。Native API只覆盖了OHOS基础的一些底层能力,如libc,图形库,窗口系统,多媒体,压缩库等,并没有完全提供类似于JS API上的完整的OHOS 平台能力。在应用中使用Native API会编译成动态库打包到应用中。
338c339a94Sopenharmony_ci
348c339a94Sopenharmony_ci
358c339a94Sopenharmony_ci
368c339a94Sopenharmony_ci##### 名词概念
378c339a94Sopenharmony_ci
388c339a94Sopenharmony_ci| 名词       | 名词解释                                                     |
398c339a94Sopenharmony_ci| :--------- | :----------------------------------------------------------- |
408c339a94Sopenharmony_ci| Native API | OHOS SDK里面native包提供的,面向三方应用开发的Native 接口以及相应编译脚本,编译工具链。包括C运行时基础库libc,3D图形库opengl,面向JS与C跨语言的接口Node-API等,具体内容详见下表。 |
418c339a94Sopenharmony_ci| NativeDevelopKit        | Native Develop Kit的缩写,在OHOS上就是Native API;Native API是官方名字,NativeDevelopKit指代相同意思。 |
428c339a94Sopenharmony_ci| SDK CAPI   | OHOS Native API中的C语言接口,以及工具链部分,当前OHOS的Native API里面只包含C语言接口,因此Native API与CAPI意思一样,建议交流的时候使用CAPI,防止Native API与napi缩写混用。 |
438c339a94Sopenharmony_ci| Node-API   | 曾用名napi,是OHOS中提供JS与C跨语言调用的接口,是Native API接口中的一部分. 该接口在’Node‘.js提供的Node-API基础上扩展而来,但不完全与’Node‘.js中的Node-API完全兼容。 |
448c339a94Sopenharmony_ci| napi       | Node-API的曾用名,当前Node-API头文件中的接口仍然以napi_开头,不建议使用。 |
458c339a94Sopenharmony_ci
468c339a94Sopenharmony_ci
478c339a94Sopenharmony_ci
488c339a94Sopenharmony_ci##### Native API构成介绍
498c339a94Sopenharmony_ci
508c339a94Sopenharmony_ci* 目录结构
518c339a94Sopenharmony_ci
528c339a94Sopenharmony_ci  Native API在SDK包的位置为$(SDK_ROOT)/native目录,主要有以下几个部分组成
538c339a94Sopenharmony_ci
548c339a94Sopenharmony_ci  | 目录        | 功能说明                                                     |
558c339a94Sopenharmony_ci  | :---------- | :----------------------------------------------------------- |
568c339a94Sopenharmony_ci  | build       | 应用中编译动态库的toolchain cmake脚本;这个目录下ohos.toolchain.cmake文件定义了给OHOS交叉编译选项 |
578c339a94Sopenharmony_ci  | build-tools | 放置编译构建的工具,如cmake                                  |
588c339a94Sopenharmony_ci  | docs        | Native API接口参考文档,通过doxgen从头文件中提取出来         |
598c339a94Sopenharmony_ci  | sysroot     | 放置编译链接的依赖文件目录,包含头文件,动态库等             |
608c339a94Sopenharmony_ci
618c339a94Sopenharmony_ci* API接口
628c339a94Sopenharmony_ci
638c339a94Sopenharmony_ci  | 接口分类                                                     | 接口功能                                                     | 引入版本 |
648c339a94Sopenharmony_ci  | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- |
658c339a94Sopenharmony_ci  | [标准C库](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/native-lib/third_party_libc/muslc.md) | 以muslc为基础提供的标准c库接口,当前提供了1500+的接口         | 8        |
668c339a94Sopenharmony_ci  | [标准C++库](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/native-lib/third_party_libc/cpp.md) | c++运行时库libcpp_shared,此库在打包的时候需要打包或者静态链接到应用中 | 8        |
678c339a94Sopenharmony_ci  | 日志                                                         | 打印日志到系统的hilog接口                                    | 8        |
688c339a94Sopenharmony_ci  | Node-API                                                     | ArkUI提供的,方便应用开发接入JS应用环境的一组类Node-API(也叫napi),是属于Native API的一部分 | 8        |
698c339a94Sopenharmony_ci  | XComponent                                                   | ArkUI XComponent组件中的界面与触屏事件接口,方便开发者开发高性能图形应用 | 8        |
708c339a94Sopenharmony_ci  | libuv                                                        | ArkUI集成的三方的异步IO库                                    | 8        |
718c339a94Sopenharmony_ci  | libz                                                         | zlib库,提供基本的压缩,解压接口                             | 8        |
728c339a94Sopenharmony_ci  | Drawing                                                      | 系统提供的2D图形库,可以在界面进行绘制                    | 8        |
738c339a94Sopenharmony_ci  | OpenGL                                                       | 系统提供的openglv3接口                                       | 8        |
748c339a94Sopenharmony_ci  | Rawfile                                                      | 应用资源访问接口,可以读取应用中打包的各种资源               | 8        |
758c339a94Sopenharmony_ci  | OpenSLES                                                     | 用于2D,3D音频加速的接口库                                   | 8        |
768c339a94Sopenharmony_ci  | Mindspore                                                    | AI模型接口库                                                 | 9        |
778c339a94Sopenharmony_ci  | 包管理                                                       | 包服务接口,方便查询应用包信息                               | 8        |
788c339a94Sopenharmony_ci
798c339a94Sopenharmony_ci* 相关资料
808c339a94Sopenharmony_ci
818c339a94Sopenharmony_ci  - [Native API参考](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component.md),介绍各个API参考手册
828c339a94Sopenharmony_ci  - [Native API中支持的标准库](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/native-lib/third_party_libc/muslc.md),介绍Native API支持的开源标准库
838c339a94Sopenharmony_ci  - [Native API开发指南](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/napi/napi-guidelines.md),结合具体的例子,场景介绍各类接口的使用
848c339a94Sopenharmony_ci  - [如何在Cmake工程中使用NativeDevelopKit](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/faqs/cmake-with-nativedevkit.md),介绍如何使用使用NativeDevelopKit开发一个CMake工程
858c339a94Sopenharmony_ci  - [Node-API在应用工程中的使用指导](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/napi/napi-guidelines.md), 如何使用Node-API接口
868c339a94Sopenharmony_ci
878c339a94Sopenharmony_ci
888c339a94Sopenharmony_ci
898c339a94Sopenharmony_ci---
908c339a94Sopenharmony_ci
918c339a94Sopenharmony_ci
928c339a94Sopenharmony_ci
938c339a94Sopenharmony_ci#### 教程介绍
948c339a94Sopenharmony_ci
958c339a94Sopenharmony_ci此教程是 Node-API 和 ArkTS 的联合使用版本,展示了如何引入Native-C++的lib库和头文件,然后通过ArkUI进行展示和直接在 OpenHarmony 设备中运行。它为开发人员提供了在 DevEco Studio 开发中使用 lib库和Native-C++ 的能力,并且通过一系列教程来引导用户了解 Native-C++ 中提供的各种功能。
968c339a94Sopenharmony_ci
978c339a94Sopenharmony_ciNative-C++ 教程的目的包括:
988c339a94Sopenharmony_ci
998c339a94Sopenharmony_ci- 帮助将 Native-C++ 应用于 OpenHarmony 应用开发中
1008c339a94Sopenharmony_ci- 帮助 OpenHarmony 社区、开发人员和三方库尤其是C/C++研究人员交互式地访问各种基于 OpenHarmony 的 C/C++ 示例,以帮助理解特定的视觉算法
1018c339a94Sopenharmony_ci- 由于 Native-C++ 能够直接在 OpenHarmony 设备中运行,教程页面具有直观和交互式的特点。例如,利用 ArkUI 和 评估 ArkTS 代码,开发人员可以更改 Native-C++ 函数的参数,并在 OpenHarmony 上进行实时的 C/C++ 编程,以实时查看结果。
1028c339a94Sopenharmony_ci
1038c339a94Sopenharmony_ci为了更好地理解这些教程,建议具备一定的 ArkUI,NAPI 和 C++ 应用程序开发知识。通过学习 Native-C++ 教程,开发人员可以更好地利用 Native-C++ 在 OpenHarmony 开发中的优势,并通过交互式的方式进行实时的算法处理,从而加深对 Native-C++和Node-API 的理解和应用能力。
1048c339a94Sopenharmony_ci
1058c339a94Sopenharmony_ci
1068c339a94Sopenharmony_ci
1078c339a94Sopenharmony_ci---
1088c339a94Sopenharmony_ci
1098c339a94Sopenharmony_ci
1108c339a94Sopenharmony_ci
1118c339a94Sopenharmony_ci#### 步骤
1128c339a94Sopenharmony_ci
1138c339a94Sopenharmony_ci在本教程中,您将学习如何在 OpenHarmony 应用开发里引入和使用 Native API 开发。
1148c339a94Sopenharmony_ci
1158c339a94Sopenharmony_ci请注意,以下是一些步骤供您参考:
1168c339a94Sopenharmony_ci
1178c339a94Sopenharmony_ci1. 使用napitutorials样例工程:
1188c339a94Sopenharmony_ci
1198c339a94Sopenharmony_ci   - IDE版本为:DevEco Studio 4.0 Release(Build Version: 4.0.0.600, built on October 17, 2023)。
1208c339a94Sopenharmony_ci
1218c339a94Sopenharmony_ci     
1228c339a94Sopenharmony_ci
1238c339a94Sopenharmony_ci2. 自行开发nativedevkit应用:
1248c339a94Sopenharmony_ci
1258c339a94Sopenharmony_ci   - 按照 [创建NativeDevelopKit工程]([创建NativeDevelopKit工程 (openharmony.cn)](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/napi/create-with-nativedevkit.md)) 教程中的步骤,配置和构建 native C++ 工程。
1268c339a94Sopenharmony_ci
1278c339a94Sopenharmony_ci     
1288c339a94Sopenharmony_ci
1298c339a94Sopenharmony_ci完成上述步骤后,您就可以在 OpenHarmony 设备上体验 Native API 的能力,并按照 [Node-API]([Node-API | ’Node‘.js v20 文档](api/n-api.html)) 教程进行进一步的学习和实践了。
1308c339a94Sopenharmony_ci
1318c339a94Sopenharmony_ci
1328c339a94Sopenharmony_ci
1338c339a94Sopenharmony_ci#### 样例能力
1348c339a94Sopenharmony_ci
1358c339a94Sopenharmony_ci| 模块                             | 接口                                                         | 是否支持 | 备注       |
1368c339a94Sopenharmony_ci| -------------------------------- | ------------------------------------------------------------ | -------- | ---------- |
1378c339a94Sopenharmony_ci| 环境生命周期API                  | [`napi_set_instance_data`](api/v18/n-api.html#napi_set_instance_data) | 不支持   | 缺少对应库 |
1388c339a94Sopenharmony_ci|                                  | [`napi_get_instance_data`](api/v18/n-api.html#napi_get_instance_data) |          |            |
1398c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1408c339a94Sopenharmony_ci| 基本Node-API数据类型             |                                                              |          |            |
1418c339a94Sopenharmony_ci|                                  | [`napi_status`](api/v18/n-api.html#napi_status) |          |            |
1428c339a94Sopenharmony_ci|                                  | [`napi_extended_error_info`](api/v18/n-api.html#napi_extended_error_info) |          |            |
1438c339a94Sopenharmony_ci|                                  | [`napi_env`](api/v18/n-api.html#napi_env)  |          |            |
1448c339a94Sopenharmony_ci|                                  | [`napi_value`](api/v18/n-api.html#napi_value) |          |            |
1458c339a94Sopenharmony_ci|                                  | [`napi_threadsafe_function`](api/v18/n-api.html#napi_threadsafe_function) |          |            |
1468c339a94Sopenharmony_ci|                                  | [`napi_threadsafe_function_release_mode`](api/v18/n-api.html#napi_threadsafe_function_release_mode) |          |            |
1478c339a94Sopenharmony_ci|                                  | [`napi_threadsafe_function_call_mode`](api/v18/n-api.html#napi_threadsafe_function_call_mode) |          |            |
1488c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1498c339a94Sopenharmony_ci| Node-API内存管理类型             | [`napi_handle_scope`](api/v18/n-api.html#napi_handle_scope) |          |            |
1508c339a94Sopenharmony_ci|                                  | [`napi_escapable_handle_scope`](api/v18/n-api.html#napi_escapable_handle_scope) |          |            |
1518c339a94Sopenharmony_ci|                                  | [`napi_ref`](api/v18/n-api.html#napi_ref)  |          |            |
1528c339a94Sopenharmony_ci|                                  | [`napi_type_tag`](api/v18/n-api.html#napi_type_tag) |          |            |
1538c339a94Sopenharmony_ci|                                  | [`napi_async_cleanup_hook_handle`](api/v18/n-api.html#napi_async_cleanup_hook_handle) |          |            |
1548c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1558c339a94Sopenharmony_ci| Node-API回调类型                 | [`napi_callback_info`](api/v18/n-api.html#napi_callback_info) |          |            |
1568c339a94Sopenharmony_ci|                                  | [`napi_callback`](api/v18/n-api.html#napi_callback) |          |            |
1578c339a94Sopenharmony_ci|                                  | [`napi_finalize`](api/v18/n-api.html#napi_finalize) |          |            |
1588c339a94Sopenharmony_ci|                                  | [`napi_async_execute_callback`](api/v18/n-api.html#napi_async_execute_callback) |          |            |
1598c339a94Sopenharmony_ci|                                  | [`napi_async_complete_callback`](api/v18/n-api.html#napi_async_complete_callback) |          |            |
1608c339a94Sopenharmony_ci|                                  | [`napi_threadsafe_function_call_js`](api/v18/n-api.html#napi_threadsafe_function_call_js) |          |            |
1618c339a94Sopenharmony_ci|                                  | [`napi_cleanup_hook`](api/v18/n-api.html#napi_cleanup_hook) |          |            |
1628c339a94Sopenharmony_ci|                                  | [`napi_async_cleanup_hook`](api/v18/n-api.html#napi_async_cleanup_hook) |          |            |
1638c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1648c339a94Sopenharmony_ci| 错误处理                         |                                                              |          |            |
1658c339a94Sopenharmony_ci| 返回值                           | [`napi_get_last_error_info`](api/v18/n-api.html#napi_get_last_error_info) |          |            |
1668c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1678c339a94Sopenharmony_ci| 异常                             | [`napi_throw`](api/v18/n-api.html#napi_throw) |          |            |
1688c339a94Sopenharmony_ci|                                  | [`napi_throw_error`](api/v18/n-api.html#napi_throw_error) |          |            |
1698c339a94Sopenharmony_ci|                                  | [`napi_throw_type_error`](api/v18/n-api.html#napi_throw_type_error) |          |            |
1708c339a94Sopenharmony_ci|                                  | [`napi_throw_range_error`](api/v18/n-api.html#napi_throw_range_error) |          |            |
1718c339a94Sopenharmony_ci|                                  | [`node_api_throw_syntax_error`](api/v18/n-api.html#node_api_throw_syntax_error) |          |            |
1728c339a94Sopenharmony_ci|                                  | [`napi_is_error`](api/v18/n-api.html#napi_is_error) |          |            |
1738c339a94Sopenharmony_ci|                                  | [`napi_create_error`](api/v18/n-api.html#napi_create_error) |          |            |
1748c339a94Sopenharmony_ci|                                  | [`napi_create_type_error`](api/v18/n-api.html#napi_create_type_error) |          |            |
1758c339a94Sopenharmony_ci|                                  | [`napi_create_range_error`](api/v18/n-api.html#napi_create_range_error) |          |            |
1768c339a94Sopenharmony_ci|                                  | [`node_api_create_syntax_error`](api/v18/n-api.html#node_api_create_syntax_error) |          |            |
1778c339a94Sopenharmony_ci|                                  | [`napi_get_and_clear_last_exception`](api/v18/n-api.html#napi_get_and_clear_last_exception) |          |            |
1788c339a94Sopenharmony_ci|                                  | [`napi_is_exception_pending`](api/v18/n-api.html#napi_is_exception_pending) |          |            |
1798c339a94Sopenharmony_ci|                                  | [`napi_fatal_exception`](api/v18/n-api.html#napi_fatal_exception) |          |            |
1808c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1818c339a94Sopenharmony_ci| 致命错误                         | [`napi_fatal_error`](api/v18/n-api.html#napi_fatal_error) |          |            |
1828c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1838c339a94Sopenharmony_ci| 对象生命周期管理                 |                                                              |          |            |
1848c339a94Sopenharmony_ci| 使句柄寿命短于本地方法           | [`napi_open_handle_scope`](api/v18/n-api.html#napi_open_handle_scope) |          |            |
1858c339a94Sopenharmony_ci|                                  | [`napi_close_handle_scope`](api/v18/n-api.html#napi_close_handle_scope) |          |            |
1868c339a94Sopenharmony_ci|                                  | [`napi_open_escapable_handle_scope`](api/v18/n-api.html#napi_open_escapable_handle_scope) |          |            |
1878c339a94Sopenharmony_ci|                                  | [`napi_close_escapable_handle_scope`](api/v18/n-api.html#napi_close_escapable_handle_scope) |          |            |
1888c339a94Sopenharmony_ci|                                  | [`napi_escape_handle`](api/v18/n-api.html#napi_escape_handle) |          |            |
1898c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1908c339a94Sopenharmony_ci| 对生命周期比原生方法长的值的引用 | [`napi_create_reference`](api/v18/n-api.html#napi_create_reference) |          |            |
1918c339a94Sopenharmony_ci|                                  | [`napi_delete_reference`](api/v18/n-api.html#napi_delete_reference) |          |            |
1928c339a94Sopenharmony_ci|                                  | [`napi_reference_ref`](api/v18/n-api.html#napi_reference_ref) |          |            |
1938c339a94Sopenharmony_ci|                                  | [`napi_reference_unref`](api/v18/n-api.html#napi_reference_unref) |          |            |
1948c339a94Sopenharmony_ci|                                  | [`napi_get_reference_value`](api/v18/n-api.html#napi_get_reference_value) |          |            |
1958c339a94Sopenharmony_ci|                                  |                                                              |          |            |
1968c339a94Sopenharmony_ci| 当前 ’Node‘.js 环境退出时的清理    | [`napi_add_env_cleanup_hook`](api/v18/n-api.html#napi_add_env_cleanup_hook) |          |            |
1978c339a94Sopenharmony_ci|                                  | [`napi_remove_env_cleanup_hook`](api/v18/n-api.html#napi_remove_env_cleanup_hook) |          |            |
1988c339a94Sopenharmony_ci|                                  | [`napi_add_async_cleanup_hook`](api/v18/n-api.html#napi_add_async_cleanup_hook) |          |            |
1998c339a94Sopenharmony_ci|                                  | [`napi_remove_async_cleanup_hook`](api/v18/n-api.html#napi_remove_async_cleanup_hook) |          |            |
2008c339a94Sopenharmony_ci| 在’Node‘.js环境退出时完成          |                                                              |          |            |
2018c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2028c339a94Sopenharmony_ci| 模块注册                         |                                                              |          |            |
2038c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2048c339a94Sopenharmony_ci| 使用JavaScript值                 |                                                              |          |            |
2058c339a94Sopenharmony_ci| 枚举类型                         | [`napi_key_collection_mode`](api/v18/n-api.html#napi_key_collection_mode) |          |            |
2068c339a94Sopenharmony_ci|                                  | [`napi_key_filter`](api/v18/n-api.html#napi_key_filter) |          |            |
2078c339a94Sopenharmony_ci|                                  | [`napi_key_conversion`](api/v18/n-api.html#napi_key_conversion) |          |            |
2088c339a94Sopenharmony_ci|                                  | [`napi_valuetype`](api/v18/n-api.html#napi_valuetype) |          |            |
2098c339a94Sopenharmony_ci|                                  | [`napi_typedarray_type`](api/v18/n-api.html#napi_typedarray_type) |          |            |
2108c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2118c339a94Sopenharmony_ci| 对象创建函数                     | [`napi_create_array`](api/v18/n-api.html#napi_create_array) |          |            |
2128c339a94Sopenharmony_ci|                                  | [`napi_create_array_with_length`](api/v18/n-api.html#napi_create_array_with_length) |          |            |
2138c339a94Sopenharmony_ci|                                  | [`napi_create_arraybuffer`](api/v18/n-api.html#napi_create_arraybuffer) |          |            |
2148c339a94Sopenharmony_ci|                                  | [`napi_create_buffer`](api/v18/n-api.html#napi_create_buffer) |          |            |
2158c339a94Sopenharmony_ci|                                  | [`napi_create_buffer_copy`](api/v18/n-api.html#napi_create_buffer_copy) |          |            |
2168c339a94Sopenharmony_ci|                                  | [`napi_create_date`](api/v18/n-api.html#napi_create_date) |          |            |
2178c339a94Sopenharmony_ci|                                  | [`napi_create_external`](api/v18/n-api.html#napi_create_external) |          |            |
2188c339a94Sopenharmony_ci|                                  | [`napi_create_external_arraybuffer`](api/v18/n-api.html#napi_create_external_arraybuffer) |          |            |
2198c339a94Sopenharmony_ci|                                  | [`napi_create_external_buffer`](api/v18/n-api.html#napi_create_external_buffer) |          |            |
2208c339a94Sopenharmony_ci|                                  | [`napi_create_object`](api/v18/n-api.html#napi_create_object) |          |            |
2218c339a94Sopenharmony_ci|                                  | [`napi_create_symbol`](api/v18/n-api.html#napi_create_symbol) |          |            |
2228c339a94Sopenharmony_ci|                                  | [`node_api_symbol_for`](api/v18/n-api.html#node_api_symbol_for) |          |            |
2238c339a94Sopenharmony_ci|                                  | [`napi_create_typedarray`](api/v18/n-api.html#napi_create_typedarray) |          |            |
2248c339a94Sopenharmony_ci|                                  | [`napi_create_dataview`](api/v18/n-api.html#napi_create_dataview) |          |            |
2258c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2268c339a94Sopenharmony_ci| 从 C 类型转换为 Node-API 的函数  | [`napi_create_int32`](api/v18/n-api.html#napi_create_int32) |          |            |
2278c339a94Sopenharmony_ci|                                  | [`napi_create_uint32`](api/v18/n-api.html#napi_create_uint32) |          |            |
2288c339a94Sopenharmony_ci|                                  | [`napi_create_int64`](api/v18/n-api.html#napi_create_int64) |          |            |
2298c339a94Sopenharmony_ci|                                  | [`napi_create_double`](api/v18/n-api.html#napi_create_double) |          |            |
2308c339a94Sopenharmony_ci|                                  | [`napi_create_bigint_int64`](api/v18/n-api.html#napi_create_bigint_int64) |          |            |
2318c339a94Sopenharmony_ci|                                  | [`napi_create_bigint_uint64`](api/v18/n-api.html#napi_create_bigint_uint64) |          |            |
2328c339a94Sopenharmony_ci|                                  | [`napi_create_bigint_words`](api/v18/n-api.html#napi_create_bigint_words) |          |            |
2338c339a94Sopenharmony_ci|                                  | [`napi_create_string_latin1`](api/v18/n-api.html#napi_create_string_latin1) |          |            |
2348c339a94Sopenharmony_ci|                                  | [`node_api_create_external_string_latin1`](api/v18/n-api.html#node_api_create_external_string_latin1) |          |            |
2358c339a94Sopenharmony_ci|                                  | [`napi_create_string_utf16`](api/v18/n-api.html#napi_create_string_utf16) |          |            |
2368c339a94Sopenharmony_ci|                                  | [`node_api_create_external_string_utf16`](api/v18/n-api.html#node_api_create_external_string_utf16) |          |            |
2378c339a94Sopenharmony_ci|                                  | [`napi_create_string_utf8`](api/v18/n-api.html#napi_create_string_utf8) |          |            |
2388c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2398c339a94Sopenharmony_ci| 从Node-API转换为C类型的函数      | [`napi_get_array_length`](api/v18/n-api.html#napi_get_array_length) |          |            |
2408c339a94Sopenharmony_ci|                                  | [`napi_get_arraybuffer_info`](api/v18/n-api.html#napi_get_arraybuffer_info) |          |            |
2418c339a94Sopenharmony_ci|                                  | [`napi_get_buffer_info`](api/v18/n-api.html#napi_get_buffer_info) |          |            |
2428c339a94Sopenharmony_ci|                                  | [`napi_get_prototype`](api/v18/n-api.html#napi_get_prototype) |          |            |
2438c339a94Sopenharmony_ci|                                  | [`napi_get_typedarray_info`](api/v18/n-api.html#napi_get_typedarray_info) |          |            |
2448c339a94Sopenharmony_ci|                                  | [`napi_get_dataview_info`](api/v18/n-api.html#napi_get_dataview_info) |          |            |
2458c339a94Sopenharmony_ci|                                  | [`napi_get_date_value`](api/v18/n-api.html#napi_get_date_value) |          |            |
2468c339a94Sopenharmony_ci|                                  | [`napi_get_value_bool`](api/v18/n-api.html#napi_get_value_bool) |          |            |
2478c339a94Sopenharmony_ci|                                  | [`napi_get_value_double`](api/v18/n-api.html#napi_get_value_double) |          |            |
2488c339a94Sopenharmony_ci|                                  | [`napi_get_value_bigint_int64`](api/v18/n-api.html#napi_get_value_bigint_int64) |          |            |
2498c339a94Sopenharmony_ci|                                  | [`napi_get_value_bigint_uint64`](api/v18/n-api.html#napi_get_value_bigint_uint64) |          |            |
2508c339a94Sopenharmony_ci|                                  | [`napi_get_value_bigint_words`](api/v18/n-api.html#napi_get_value_bigint_words) |          |            |
2518c339a94Sopenharmony_ci|                                  | [`napi_get_value_external`](api/v18/n-api.html#napi_get_value_external) |          |            |
2528c339a94Sopenharmony_ci|                                  | [`napi_get_value_int32`](api/v18/n-api.html#napi_get_value_int32) |          |            |
2538c339a94Sopenharmony_ci|                                  | [`napi_get_value_int64`](api/v18/n-api.html#napi_get_value_int64) |          |            |
2548c339a94Sopenharmony_ci|                                  | [`napi_get_value_string_latin1`](api/v18/n-api.html#napi_get_value_string_latin1) |          |            |
2558c339a94Sopenharmony_ci|                                  | [`napi_get_value_string_utf8`](api/v18/n-api.html#napi_get_value_string_utf8) |          |            |
2568c339a94Sopenharmony_ci|                                  | [`napi_get_value_string_utf16`](api/v18/n-api.html#napi_get_value_string_utf16) |          |            |
2578c339a94Sopenharmony_ci|                                  | [`napi_get_value_uint32`](api/v18/n-api.html#napi_get_value_uint32) |          |            |
2588c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2598c339a94Sopenharmony_ci| 获取全局实例的函数               | [`napi_get_boolean`](api/v18/n-api.html#napi_get_boolean) |          |            |
2608c339a94Sopenharmony_ci|                                  | [`napi_get_global`](api/v18/n-api.html#napi_get_global) |          |            |
2618c339a94Sopenharmony_ci|                                  | [`napi_get_null`](api/v18/n-api.html#napi_get_null) |          |            |
2628c339a94Sopenharmony_ci|                                  | [`napi_get_undefined`](api/v18/n-api.html#napi_get_undefined) |          |            |
2638c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2648c339a94Sopenharmony_ci| 使用JavaScript值和抽象操作       | [`napi_coerce_to_bool`](api/v18/n-api.html#napi_coerce_to_bool) |          |            |
2658c339a94Sopenharmony_ci|                                  | [`napi_coerce_to_number`](api/v18/n-api.html#napi_coerce_to_number) |          |            |
2668c339a94Sopenharmony_ci|                                  | [`napi_coerce_to_object`](api/v18/n-api.html#napi_coerce_to_object) |          |            |
2678c339a94Sopenharmony_ci|                                  | [`napi_coerce_to_string`](api/v18/n-api.html#napi_coerce_to_string) |          |            |
2688c339a94Sopenharmony_ci|                                  | [`napi_typeof`](api/v18/n-api.html#napi_typeof) |          |            |
2698c339a94Sopenharmony_ci|                                  | [`napi_instanceof`](api/v18/n-api.html#napi_instanceof) |          |            |
2708c339a94Sopenharmony_ci|                                  | [`napi_is_array`](api/v18/n-api.html#napi_is_array) |          |            |
2718c339a94Sopenharmony_ci|                                  | [`napi_is_arraybuffer`](api/v18/n-api.html#napi_is_arraybuffer) |          |            |
2728c339a94Sopenharmony_ci|                                  | [`napi_is_buffer`](api/v18/n-api.html#napi_is_buffer) |          |            |
2738c339a94Sopenharmony_ci|                                  | [`napi_is_date`](api/v18/n-api.html#napi_is_date) |          |            |
2748c339a94Sopenharmony_ci|                                  | [`napi_is_error`](api/v18/n-api.html#napi_is_error_1) |          |            |
2758c339a94Sopenharmony_ci|                                  | [`napi_is_typedarray`](api/v18/n-api.html#napi_is_typedarray) |          |            |
2768c339a94Sopenharmony_ci|                                  | [`napi_is_dataview`](api/v18/n-api.html#napi_is_dataview) |          |            |
2778c339a94Sopenharmony_ci|                                  | [`napi_strict_equals`](api/v18/n-api.html#napi_strict_equals) |          |            |
2788c339a94Sopenharmony_ci|                                  | [`napi_detach_arraybuffer`](api/v18/n-api.html#napi_detach_arraybuffer) |          |            |
2798c339a94Sopenharmony_ci|                                  | [`napi_is_detached_arraybuffer`](api/v18/n-api.html#napi_is_detached_arraybuffer) |          |            |
2808c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2818c339a94Sopenharmony_ci| 使用JavaScript属性               |                                                              |          |            |
2828c339a94Sopenharmony_ci| 结构                             | [`napi_property_attributes`](api/v18/n-api.html#napi_property_attributes) [`napi_property_descriptor`](api/v18/n-api.html#napi_property_descriptor) |          |            |
2838c339a94Sopenharmony_ci|                                  |                                                              |          |            |
2848c339a94Sopenharmony_ci| 函数                             | [`napi_get_property_names`](api/v18/n-api.html#napi_get_property_names) |          |            |
2858c339a94Sopenharmony_ci|                                  | [`napi_get_all_property_names`](api/v18/n-api.html#napi_get_all_property_names) |          |            |
2868c339a94Sopenharmony_ci|                                  | [`napi_set_property`](api/v18/n-api.html#napi_set_property) |          |            |
2878c339a94Sopenharmony_ci|                                  | [`napi_get_property`](api/v18/n-api.html#napi_get_property) |          |            |
2888c339a94Sopenharmony_ci|                                  | [`napi_has_property`](api/v18/n-api.html#napi_has_property) |          |            |
2898c339a94Sopenharmony_ci|                                  | [`napi_delete_property`](api/v18/n-api.html#napi_delete_property) |          |            |
2908c339a94Sopenharmony_ci|                                  | [`napi_has_own_property`](api/v18/n-api.html#napi_has_own_property) |          |            |
2918c339a94Sopenharmony_ci|                                  | [`napi_set_named_property`](api/v18/n-api.html#napi_set_named_property) |          |            |
2928c339a94Sopenharmony_ci|                                  | [`napi_get_named_property`](api/v18/n-api.html#napi_get_named_property) |          |            |
2938c339a94Sopenharmony_ci|                                  | [`napi_has_named_property`](api/v18/n-api.html#napi_has_named_property) |          |            |
2948c339a94Sopenharmony_ci|                                  | [`napi_set_element`](api/v18/n-api.html#napi_set_element) |          |            |
2958c339a94Sopenharmony_ci|                                  | [`napi_get_element`](api/v18/n-api.html#napi_get_element) |          |            |
2968c339a94Sopenharmony_ci|                                  | [`napi_has_element`](api/v18/n-api.html#napi_has_element) |          |            |
2978c339a94Sopenharmony_ci|                                  | [`napi_delete_element`](api/v18/n-api.html#napi_delete_element) |          |            |
2988c339a94Sopenharmony_ci|                                  | [`napi_define_properties`](api/v18/n-api.html#napi_define_properties) |          |            |
2998c339a94Sopenharmony_ci|                                  | [`napi_object_freeze`](api/v18/n-api.html#napi_object_freeze) |          |            |
3008c339a94Sopenharmony_ci|                                  | [`napi_object_seal`](api/v18/n-api.html#napi_object_seal) |          |            |
3018c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3028c339a94Sopenharmony_ci| 使用JavaScript函数               | [`napi_call_function`](api/v18/n-api.html#napi_call_function) |          |            |
3038c339a94Sopenharmony_ci|                                  | [`napi_create_function`](api/v18/n-api.html#napi_create_function) |          |            |
3048c339a94Sopenharmony_ci|                                  | [`napi_get_cb_info`](api/v18/n-api.html#napi_get_cb_info) |          |            |
3058c339a94Sopenharmony_ci|                                  | [`napi_get_new_target`](api/v18/n-api.html#napi_get_new_target) |          |            |
3068c339a94Sopenharmony_ci|                                  | [`napi_new_instance`](api/v18/n-api.html#napi_new_instance) |          |            |
3078c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3088c339a94Sopenharmony_ci| 对象封装                         | [`napi_define_class`](api/v18/n-api.html#napi_define_class) |          |            |
3098c339a94Sopenharmony_ci|                                  | [`napi_wrap`](api/v18/n-api.html#napi_wrap) |          |            |
3108c339a94Sopenharmony_ci|                                  | [`napi_unwrap`](api/v18/n-api.html#napi_unwrap) |          |            |
3118c339a94Sopenharmony_ci|                                  | [`napi_remove_wrap`](api/v18/n-api.html#napi_remove_wrap) |          |            |
3128c339a94Sopenharmony_ci|                                  | [`napi_type_tag_object`](api/v18/n-api.html#napi_type_tag_object) |          |            |
3138c339a94Sopenharmony_ci|                                  | [`napi_check_object_type_tag`](api/v18/n-api.html#napi_check_object_type_tag) |          |            |
3148c339a94Sopenharmony_ci|                                  | [`napi_add_finalizer`](api/v18/n-api.html#napi_add_finalizer) |          |            |
3158c339a94Sopenharmony_ci|                                  | [`node_api_post_finalizer`](api/v18/n-api.html#node_api_post_finalizer) |          |            |
3168c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3178c339a94Sopenharmony_ci| 简单的异步操作                   | [`napi_create_async_work`](api/v18/n-api.html#napi_create_async_work) |          |            |
3188c339a94Sopenharmony_ci|                                  | [`napi_delete_async_work`](api/v18/n-api.html#napi_delete_async_work) |          |            |
3198c339a94Sopenharmony_ci|                                  | [`napi_queue_async_work`](api/v18/n-api.html#napi_queue_async_work) |          |            |
3208c339a94Sopenharmony_ci|                                  | [`napi_cancel_async_work`](api/v18/n-api.html#napi_cancel_async_work) |          |            |
3218c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3228c339a94Sopenharmony_ci| 自定义异步操作                   | [`napi_async_init`](api/v18/n-api.html#napi_async_init) |          |            |
3238c339a94Sopenharmony_ci|                                  | [`napi_async_destroy`](api/v18/n-api.html#napi_async_destroy) |          |            |
3248c339a94Sopenharmony_ci|                                  | [`napi_make_callback`](api/v18/n-api.html#napi_make_callback) |          |            |
3258c339a94Sopenharmony_ci|                                  | [`napi_open_callback_scope`](api/v18/n-api.html#napi_open_callback_scope) |          |            |
3268c339a94Sopenharmony_ci|                                  | [`napi_close_callback_scope`](api/v18/n-api.html#napi_close_callback_scope) |          |            |
3278c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3288c339a94Sopenharmony_ci| 版本管理                         | [`napi_get_node_version`](api/v18/n-api.html#napi_get_node_version) |          |            |
3298c339a94Sopenharmony_ci|                                  | [`napi_get_version`](api/v18/n-api.html#napi_get_version) |          |            |
3308c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3318c339a94Sopenharmony_ci| 内存管理                         | [`napi_adjust_external_memory`](api/v18/n-api.html#napi_adjust_external_memory) |          |            |
3328c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3338c339a94Sopenharmony_ci| Promise                          | [`napi_create_promise`](api/v18/n-api.html#napi_create_promise) |          |            |
3348c339a94Sopenharmony_ci|                                  | [`napi_resolve_deferred`](api/v18/n-api.html#napi_resolve_deferred) |          |            |
3358c339a94Sopenharmony_ci|                                  | [`napi_reject_deferred`](api/v18/n-api.html#napi_reject_deferred) |          |            |
3368c339a94Sopenharmony_ci|                                  | [`napi_is_promise`](api/v18/n-api.html#napi_is_promise) |          |            |
3378c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3388c339a94Sopenharmony_ci| 脚本执行                         | [`napi_run_script`](api/v18/n-api.html#napi_run_script) |          |            |
3398c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3408c339a94Sopenharmony_ci| libuv事件循环                    | [`napi_get_uv_event_loop`](api/v18/n-api.html#napi_get_uv_event_loop) |          |            |
3418c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3428c339a94Sopenharmony_ci| 异步线程安全函数调用             | [调用线程安全的函数](api/v18/n-api.html#调用线程安全的函数) |          |            |
3438c339a94Sopenharmony_ci|                                  | [线程安全函数的引用计数](api/v18/n-api.html#线程安全函数的引用计数) |          |            |
3448c339a94Sopenharmony_ci|                                  | [决定是否保持进程运行](api/v18/n-api.html#决定是否保持进程运行) |          |            |
3458c339a94Sopenharmony_ci|                                  | [`napi_create_threadsafe_function`](api/v18/n-api.html#napi_create_threadsafe_function) |          |            |
3468c339a94Sopenharmony_ci|                                  | [`napi_get_threadsafe_function_context`](api/v18/n-api.html#napi_get_threadsafe_function_context) |          |            |
3478c339a94Sopenharmony_ci|                                  | [`napi_call_threadsafe_function`](api/v18/n-api.html#napi_call_threadsafe_function) |          |            |
3488c339a94Sopenharmony_ci|                                  | [`napi_acquire_threadsafe_function`](api/v18/n-api.html#napi_acquire_threadsafe_function) |          |            |
3498c339a94Sopenharmony_ci|                                  | [`napi_ref_threadsafe_function`](api/v18/n-api.html#napi_ref_threadsafe_function) |          |            |
3508c339a94Sopenharmony_ci|                                  | [`napi_unref_threadsafe_function`](api/v18/n-api.html#napi_unref_threadsafe_function) |          |            |
3518c339a94Sopenharmony_ci|                                  |                                                              |          |            |
3528c339a94Sopenharmony_ci| 使用工具                     | [`node_api_get_module_file_name`](api/v18/n-api.html#node_api_get_module_file_name) |          |            |
3538c339a94Sopenharmony_ci|                                  |                                                              |          |            |
354