我在Android Studio的APP中创建了一个JNI文件夹,我复制了所有的C文件,但我只需要调用一个:NeuralNetwork.c
,还有NeuralNetwork_initialize.c
和NeuralNetwork_terminate.c
。我已经有了我的CMakeFile。
我知道我需要用这样的东西创建另一个C文件(它被称为main.c):
#import <jni.h>
JNIEXPORT jstring JNICALL Java_com_dsp_testapp_NewRecordingActivity_getString(JNIEnv *env, jobject thiz) {
return (*env)->NewStringUTF(env, "Hello World from C!");
}
但是,我需要它专门调用我的NeuralNetwork.c
,我知道我也必须使用初始化并以某种方式终止,但不是真的知道如何。
现在,在我的Java课程中,我做到了这一点:
System.loadLibrary("my_src");
my_src是我的CMake文件生成的库的名称。
但我不知道如何调用我的main.c
函数。
NeuralNetwork.c
只给我一个双:1或0,有5个向量输入,长度为256. 你能帮帮我吗?
答案 0 :(得分:0)
您基本上需要创建一个Java类,其类别名称(类+包)与您在库中使用的名称相对应(com.dsp.testapp.NewRecordingActivity
)。然后,您需要将方法声明为native
:
public native getString(Object obj)
然后,只需创建此类的对象并调用该方法。