您的位置:首页 > 移动开发 > Android开发

Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java

2012-03-02 09:27 786 查看
转自:/article/1916476.html

一、 在JNI中执行Java方法

class AndroidJniDemo {

private native void executeMethod();

private void show() {

System.out.println("Java cwj print"); //执行了show方法后打印java层的输出

}

public static void main(String args[]) { //这里我们在J2SE中测试,Android开发者可以放到Activity中的onCreate调用

AndroidJniDemo ajd = new AndroidJniDemo();

ajd.executeMethod();

}

static {

System.loadLibrary("AndroidJniDemo");

}

}

下面是JNI代码:

JNIEXPORT void JNICALL

Java_AndroidJniDemo_executeMethod(JNIEnv *env, jobject obj)

{

jclass clazz = (*env)->GetObjectClass(env, obj); //通过类的对象

jmethodID mid = (*env)->GetMethodID(env, clazz, "show", "()V"); //查找java中的show方法的ID,最后的签名符号为void类型

if (mid == NULL) {

return; //如果方法ID没有找到

}

printf("JNI cwj print"); //从JNI中打印输出

(*env)->CallVoidMethod(env, obj, mid); //执行show方法

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐