如何在JNI中比较两个jbyteArray?

时间:2019-04-28 03:06:07

标签: android java-native-interface

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

1 个答案:

答案 0 :(得分:1)

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

如果它们实际上是不同的对象,则可以通过逐元素匹配将它们与JNI进行比较。自然地,首先比较两个对象的长度,然后仅在长度相等时才固定它们的元素是明智的。

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

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