【第22期】观点:IT 行业加班,到底有没有价值?

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

转载 2012年03月29日 17:52:20

转自:http://www.android123.com.cn/androidkaifa/686.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方法
}

举报

相关文章推荐

Android底层调用C代码(JNI实现)

Android底层JNI调用:以HomePanel为例 一、基础知识 二、从Android框架角度简单分析JNI 三、标准JNI实现步骤 四、HomePanel为例实现JNI 一、基础知识1、JNI:...

Android平台Native开发与JNI机制详解

个人认为下面这篇转载的文章写的很清晰很不错. 注意Android平台上的JNI机制使用包括Java代码中调用Native模块以及Native代码中调用Java模块. http://www.ophonesdn.com/article/show/263 众所周知,OPhone平台上的应用开发主要基于Java语言,但平台完全支持且提供了一定的Native开发能力(主要是C/C++),使得开发者可以借助JNI更深入的实现创意。本文主要介绍OPhone平台的JNI机制和Native模块开发与发布的方法。 JNI简介 Java Native Interface(JNI)是Java提供的

Android-本地方法C调用Java中的方法/NDK-JNI开发实例(六)

流程:  点击button按钮调用本地方法,本地方法中使用C调用Java中的show()方法; 生成方法的签名: 打印方法签名 项目名-->app-->build-->interm...

Android平台Native开发与JNI机制详解

个人认为下面这篇转载的文章写的很清晰很不错. 注意Android平台上的JNI机制使用包括Java代码中调用Native模块以及Native代码中调用Java模块.   http://www.ophonesdn.com/article/show/263   众所周知,OPhone平台上的应用

Android开发之NDK学习完整版

什么是JNI? JNI java本地开发接口(java native interface) JNI 是一个协议 这个协议用来沟通java代码和外部的本地代码(c/c++). 通过这个协议,ja...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)