gpt4 book ai didi

java - 从 Java 类调用 C 函数 JNI

转载 作者:行者123 更新时间:2023-11-30 16:39:10 24 4
gpt4 key购买 nike

我在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 只给我一个 double 值:1 或 0,并且有 5 个 vector 输入,长度为 256。

你能帮我解决这个问题吗?

最佳答案

您基本上需要创建一个 Java 类,其限定名称(类 + 包)与您在库中使用的内容 (com.dsp.testapp.NewRecordingActivity) 相对应。然后您需要将该方法声明为native:

公共(public) native getString(Object obj)

之后,只需创建该类的对象并调用该方法即可。

关于java - 从 Java 类调用 C 函数 JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47158617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com