JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
2011-08-26 11:22
666 查看
代码下载:http://dl.dbank.com/c0c0xs3b24
一、JNI实现回调
通过JNI在Native层调用JAVA层的方法,来实现Native层向JAVA层传递消息。JNICallback.java
public class JNICallback extends Activity { static { System.loadLibrary("callback"); } public void callback(int notify_id, int param) { Log.e("JNICallback","notify_id="+notify_id+";param="+param); } public native void setCallBack(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setCallBack(); } }com_JNICallback_JNICallback.cpp
void JNICALL Java_com_JNICallback_JNICallback_setCallBack (JNIEnv *env, jobject obj) { LOGE("jni callback (0)"); jclass cls = env->GetObjectClass(obj); jmethodID callback = env->GetMethodID(cls,"callback","(II)V"); env->CallVoidMethod(obj,callback,5,10); LOGE("jni callback (1)"); }
javah -classpath . -jni com.JNICallback.JNICallback(包名+类名)
二、JNI调用JAVA函数
获取实例的类定义 jclass cls = env->GetObjectClass(obj);获取方法定义 jmethodID callback = env->GetMethodID(cls,"callback","(II)V");
调用方法 env->CallVoidMethod(obj,callback,5,10);
三、参数和返回值的格式
参考 http://java.sun.com/docs/books/jni/html/jniTOC.html
相关文章推荐
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- nativa java里面定义了函数,在JNI里面也实现了,函数名参数什么的都没有错,调用native函数是怎么就出现链接失败的情况呢???
- java JNI 实例 实现调用c++函数
- eclipse JNI示例。利用C/C++实现JAVA中调用的函数
- 自动生成Jni中Java调用C语言实现的签名函数名
- Android开发 通过JNI实现JAVA与C/C++程序间的调用和回调
- 【JNI开发】C++调用java函数的实现方法
- 有关java的函数调用返回值的问题和参数传递问题
- java实现C语言编译器:实现有参数的函数调用
- jni实现回调java函数
- java实现C语言解释器:无参数传递的函数调用的解释和执行
- 实现函数 functionFunction,调用之后满足如下条件: 1、返回值为一个函数 f 2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', ' 3、所
- Java函数字符串参数传递的传址模式实现
- java函数回调实现原理
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
- JavaScript创建一个add()函数可实现,可变参数和递归调用
- 一个简单的java回调函数的实现
- java调用oracle中输入参数是数组类型的函数或者存储过程