我想通过 NDK C 函数修改 java SDK 中声明的全局变量,例如:
public class NDKTest extends Activity
{
static int myglobal = 0;
static { System.loadLibrary("MyCLib"); }
static public native void incrementmyglobal();
....
在 MyCLib 中:
#include "NDKTest.h"
JNIEXPORT void JNICALL Java_NDKTest_incrementmyglobal
(JNIEnv * env, jobject jObj)
{
/*
this next line is obviously wrong, but illustrates how it would have
been done had it been a purely C program
*/
M.myglobal = M.myglobal + 1;
return;
}
所以我的问题是:
a/ 违规行的正确语法是什么?
b/ C头文件应该怎么看?
c/ Android.mk 文件应该是什么样子?
我可以编译和运行各种 'helloworld' NDK 示例,但我发现没有一个可以说明如何修改在 java 中声明的全局。一个超级简单的例子将不胜感激!
我正在使用 Linux 命令行(ant debug)和简单的文本编辑器(emacs)进行编程。我没有使用 Eclipse;多年来一直在编程 C,并且是 Java 菜鸟。目标平台是 Android。干杯!