我想在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代码?
答案 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