如何在JNI中比较两个jbyteArray?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在JNI中比较两个jbyteArray?相关的知识,希望对你有一定的参考价值。

我想比较两个jbyteArray如果在JNI中相等。是否有任何方法,如“strcmp”?

答案

如果要检查两个jbyteArrays实际上是否是相同的对象,可以使用env->IsSameObject(array1, array2)进行测试。

如果它们实际上是不同的对象,您可以通过逐个元素地匹配它们来比较数组的内容与JNI。当然,首先比较两个对象的长度是明智的,并且只有在长度相等时才继续固定它们的元素。

GetByteArrayElements(array)返回一个C字节数组,因此可以将两个jbyteArrays的结果与memcmp()进行比较。

即使您不再需要Java对象,也不要忘记在使用后释放数组。在开始比较它们之前,不要忘记检查两个jbyteArrays都不为null。

以上是关于如何在JNI中比较两个jbyteArray?的主要内容,如果未能解决你的问题,请参考以下文章

C ++中的JNI将文件读取到jbyteArray

Android JNI:将cv :: Mat转换为jbyteArray

JNI jbyteArray转char*

求指教,C++编写JNI中jobect和jstring如何类型转换

Android 安装包优化使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(代码片

如何在JNI中使用线程