转自:http://www.android123.com.cn/androidkaifa/686.html

一、 在JNI中执行Java方法

class AndroidJniDemo {
privatenativevoid executeMethod();
private void show() {
System.out.println("Java cwj print"); //执行了show方法后打印java层的输出
}
public static void main(String args[]) { //这里我们在J2SE中测试,Android开发者可以放到Activity中的onCreate调用
AndroidJniDemoajd = 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方法
}

更多相关文章

  1. Android(安卓)ART Hook & 注入实现细节
  2. android四种点击事件触发写法
  3. 修改Android模拟器的system分区,以及加入SuperSU
  4. 浅谈android IOC控制反转二(事件篇)
  5. Android(安卓)NDK用法
  6. Android视频播放时停止后台运行的方法
  7. 帅气的属性动画赏析(Property Animation)
  8. Android(安卓)6.0 Marshmallow root 方法
  9. Android使用ListView批量删除item的方法

随机推荐

  1. 第一行代码笔记1
  2. Android 强大的图片加载缓存— Glide
  3. Android 启动流程简介
  4. Android 碎屏效果 (Crack Screen,击碎屏
  5. Android设备定制为永不锁屏
  6. Android(安卓)OpenGL ES(五):GLSurfaceView
  7. 【Android】入门案例(二)——JDBC连接MyS
  8. {转}实现谷歌Android摄像头拍照 2010-06-
  9. [Android]Fragment生命周期
  10. android应用程序跳转到系统的各个设置页