我想通过 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。干杯!