Android 在JNI中执行Java方法--C/C++调用Java
来源:互联网 发布:中国软件测试中心 编辑:程序博客网 时间:2024/04/30 03:39
一、 在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方法
}
C++的jni则这么写。因为c和c++提供的有些函数格式是不一样的。
JNIEXPORT void JNICALL
Java_AndroidJniDemo_executeMethod(JNIEnv *env, jobject obj)
{
jclass clazz=env->GetObjectClass(obj);//通过类对象
jmethodID mid = env->GetMethodID(clazz, "show", "()V"); //查找java中的show方法id,最后的签名符号为void类型
if (mid == NULL) {return; //如果方法ID没有找到
}
printf("JNI cwj print"); //从JNI中打印输出
env->CallVoidMethod(obj,mid,"()V"); //执行人show方法
}
- Android 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android JNI中C调用Java方法
- android JNI中C中调用java中方法
- Android JNI 在C中调用Java(包括自定义的Java方法和Log)
- Android JNI-c/c++调用java方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI中JAVA调用C/C++方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- JNI中C调用Java方法
- MySQL数据库备份的命令实际应用
- spring使用文件流形式下载文件
- winform中使用js
- CListCtrl的OnTimer问题
- 设计模式笔记1:策略模式(Strategy pattern)
- Android 在JNI中执行Java方法--C/C++调用Java
- SQL语言基础一
- 深入跨进程访问(AIDL服务)
- Android SDK 中Android.net.wifi简要分析
- 基于Java的全文检索引擎简介
- velocity 模板引擎
- 按分辨率不同调整对话框大小以及控件大小
- 如何对webbrowser和IE编程
- <s:iterator>各种遍历用法