0

我有想要在 Android 应用程序中使用的C 代码 ( testFile .c),使用 JNI。这段代码包含纯C代码,里面有很多方法。此外,它还调用了一些 C 头文件(file1 .h、file2 .h)。

例如: testFile .c

#include "file1.h"
#include "file2.h"

void myMethod1()
{
    ...
    ...
}
void myMethod2()
{
    ...
    ...
}
void myMethod3()
{
    ...
    ...
}

我是否必须将整个testFile .c 转换为 JNI 代码,或者只是转换一些我稍后将使用的方法(不是全部)?我还应该在头文件(file1.h 和 file2.h)中转换 c 代码,还是只在 testFile.c 中转换 c 代码?

4

2 回答 2

3

或者如果你的 Java 和 C 代码之间的接口非常简单,但是在 Android 上使用 jni 的整个过程不熟悉,你可以或多或少地将你的 C 代码合并到 ndk 中的 hello-jni 示例中。关键是你从构建和工作的东西开始,一点一点地添加你需要的东西,如果你遇到问题,你可以备份并找出你在哪个阶段破坏了它。

于 2012-05-04T18:59:40.147 回答
1

最简单的方法是定义您的 JNI Java 端接口并使用自动生成 c 方法存根javah来生成 c 文件。然后在这个 c 文件中调用实际的 c 方法method1()method2()然后method3().

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javah.html

于 2012-05-04T18:55:12.177 回答