Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何比较JNI中的两个jbyteArray?_Android_Java Native Interface - Fatal编程技术网

Android 如何比较JNI中的两个jbyteArray?

Android 如何比较JNI中的两个jbyteArray?,android,java-native-interface,Android,Java Native Interface,如果JNI中的两个jbyteArray相等,我想比较一下。有没有像“strcmp”这样的方法?如果你想检查两个jbyteArray实际上是相同的对象,你可以用env->IsSameObject(array1,array2)来测试 如果它们实际上是不同的对象,您可以通过逐个元素匹配来将数组的内容与JNI进行比较。当然,首先比较两个对象的长度是明智的,并且只有在长度相等时才继续固定它们的元素 GetByteArrayElements(array)返回一个C字节数组,因此两个jbyteArray的结果

如果JNI中的两个jbyteArray相等,我想比较一下。有没有像“strcmp”这样的方法?

如果你想检查两个jbyteArray实际上是相同的对象,你可以用
env->IsSameObject(array1,array2)
来测试

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

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


即使不再需要Java对象,也不要忘记在使用后释放数组。在开始比较之前,不要忘记检查jbyteArrays是否不为空。

请参阅
GetByteArrayElements
thx,似乎最好的方法是使用memcmp()逐个元素进行比较。如果有可能这两个对象实际上是相同的,直接逐字节比较内容不仅浪费时间;在这种情况下,GetByteArrayElements()将不可避免地导致不必要的复制操作。