【发布时间】:2013-06-01 19:44:28
【问题描述】:
我制作了一个简单的本地库,可以存储一个整数并返回它。
#include <string.h>
#include <jni.h>
static int a;
void Java_com_example_testnativelibs_TestClass_setA(JNIEnv* env, jobject javaThis, jint val){
a = val;
}
jint Java_com_example_testnativelibs_TestClass_getA(JNIEnv* env, jobject javaThis) {
return a;
}
这是TestClass代码:
public class TestClass {
public TestClass() {
System.loadLibrary("ndkfoo2");
}
public native void setA(int val);
public native int getA();
}
然后是我的 MainActivity 的代码:
TestClass a = new TestClass();
TestClass b = new TestClass();
a.setA(5);
b.setA(2);
Log.i("A VALUE",""+a.getA());
Log.i("B VALUE",""+b.getA());
值 2 在日志中显示了两次,这意味着该库仅加载一次,并且由同一类的所有实例“共享”。是否可以多次加载它,每个类实例加载一次?
【问题讨论】:
标签: android android-ndk android-library