JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
2012-06-06 15:16
525 查看
一、JNI实现回调
通过JNI在Native层调用JAVA层的方法,来实现Native层向JAVA层传递消息。JNICallback.java
[java] view
plaincopy
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();
}
<span style="font-family:Comic Sans MS;">}</span>
com_JNICallback_JNICallback.cpp
[cpp] view
plaincopy
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);
三、参数和返回值的格式
相关文章推荐
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- nativa java里面定义了函数,在JNI里面也实现了,函数名参数什么的都没有错,调用native函数是怎么就出现链接失败的情况呢???
- java实现C语言编译器:实现有参数的函数调用
- 有关java的函数调用返回值的问题和参数传递问题
- jni实现回调java函数
- java实现C语言解释器:无参数传递的函数调用的解释和执行
- 实现函数 functionFunction,调用之后满足如下条件: 1、返回值为一个函数 f 2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', ' 3、所
- java JNI 实例 实现调用c++函数
- eclipse JNI示例。利用C/C++实现JAVA中调用的函数
- 自动生成Jni中Java调用C语言实现的签名函数名
- Android开发 通过JNI实现JAVA与C/C++程序间的调用和回调
- 【JNI开发】C++调用java函数的实现方法
- 函数多个返回值(返回多个参数/局部变量)通过双重指针来实现
- 通过JNI实现Java和C++的相互调用(转)
- java通过javascript引擎调用javascript数学函数实现计算
- 一个类如何实现两个接口中同名同参数不同返回值的函数
- Java通过匿名类来实现回调函数实例总结
- JNI实现JAVA和C++互相调用