如何将C代码转换为JNI代码

时间:2012-05-04 18:48:50

标签: android android-ndk java-native-interface native-code

我想在Android App中使用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代码?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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