Ich bin neu in NDK und lerne.
Ich habe es geschafft, die native Methode aus Java-Code aufzurufen, weiß aber nicht, wie ich zwei vergleichen kann jbyte
Arrays
Hier ist was ich habe:
jbyte bytes1[] = {48, -126, 1,4};
jbyte bytes2[] = {48, -126, 1,4};
jclass cls = (*env)->GetObjectClass(env, bytes1);
jmethodID mid = (*env)->GetMethodID(env, cls, "equals", "([B)Z");
jboolean isEqual = (*env)->CallBooleanMethod(env, bytes1, mid, bytes2);
Ich weiß oben Code ist falsch, aber gibt es einen richtigen Weg zum Vergleich der Byte-Arrays
Antworten:
1 für die Antwort № 1Verwenden Sie memcmp, wenn Sie zwei Jbyte-Arrays vergleichen müssen.
#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);
In Ihrem Beispiel
jboolean isEqual = (memcmp(bytes1, bytes2, 4) == 0);