我敢肯定人们一直都在这样做,但我在这里过得很艰难。我将浮点数组传递给 JNI 函数,但随后我打算使用 ARM 的 NEON SIMD 功能对这个数组执行一些操作。无论如何,我都不是 C 专家,所以我有点卡住了。这是我正在尝试做的事情的草图。
JNIEXPORT jfloatArray JNICALL Java_com_blah (JNIEnv *env, jobject obj, jfloatArray input)
{
jfloat * x;
float32_t * y;
x = (*env)->GetFloatArrayElements(env,input,0);
// Assign x to y
// Perform some stuff on y
// Return y as a Java float array back to caller
}
我必须想出如何使用 C 对整个数组进行类型转换。此外,也许有一种方法可以在从 Java ( x = (*env)->GetFloatArrayElements(env,input,0)
) 中提取数组条目时直接执行此操作。这样做的正确方法是什么?