HarmonyOS 鸿蒙Next NAPI是否也有JNI变量类型的对应关系

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next NAPI是否也有JNI变量类型的对应关系 JNI中,java和C++变量类型对应如下:

boolean – jboolean
byte – jbyte
char – jchar

需要确认下napi是否也有类似的映射关系。

之前项目基于JNI开发,通信需要移植到NAPI中来。

3 回复

参考官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/napi-V5

相关API:

  • 未知类型判断接口:napi_typeof
  • C++转ArkTS相关接口:napi_get_** 与 napi_create_** (napi_get_undefined、napi_get_null、napi_get_boolean、napi_create_int32、napi_create_string_utf8、napi_create_string_utf16 等等)
  • ArkTS转C++相关接口:napi_get_value_** (napi_get_value_double、napi_get_value_int32、napi_get_value_bool、napi_get_value_string_utf8、napi_get_value_string_utf16等等)
  • 大量数据相关接口:napi_create_arraybuffer、napi_create_typedarray、napi_create_dataview、napi_detach_arraybuffer

大量数据主要为借助ArrayBuffer处理,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/use-napi-about-arraybuffer-V5

更多关于HarmonyOS 鸿蒙Next NAPI是否也有JNI变量类型的对应关系的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙中对应TS的NAPI变量主要都是用的指针:napi_value

JS侧的值传到native侧是用napi_value指针接收,然后可转为C++变量。

HarmonyOS 鸿蒙的Next NAPI(Native Application Programming Interface)与JNI(Java Native Interface)在设计和用途上存在显著差异,因此Next NAPI并不直接提供与JNI变量类型完全对应的机制。

JNI主要用于Java代码与本地(通常是C或C++)代码之间的交互,允许Java程序调用本地代码并与之交换数据。而HarmonyOS的Next NAPI更侧重于提供一套标准化的、跨语言的编程接口,旨在简化开发者在不同语言环境下的开发工作,并提升代码的可移植性和复用性。

在HarmonyOS中,如果需要在不同语言之间传递数据,开发者通常会采用序列化、反序列化或其他数据交换格式(如JSON、XML等)来实现。此外,HarmonyOS也提供了丰富的API和框架来支持跨语言、跨进程通信和数据共享。

因此,对于HarmonyOS鸿蒙Next NAPI是否也有JNI变量类型的对应关系这一问题,答案是:Next NAPI不直接提供与JNI变量类型对应的机制,而是采用了不同的方法来支持跨语言交互和数据传递。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,

回到顶部