Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
2012-03-02 09:27
786 查看
转自:/article/1916476.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方法
}
一、 在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-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- [转]Android通过NDK调用JNI,使用opencv做本地c++代码开发配置方法
- Android-本地方法与Java相互调用-自定义ProgressBar(锅炉压力监测例子)/NDK-JNI开发实例(七)
- Android-使用C++实现调用本地方法返回字符串显示在界面上/NDK-JNI开发实例(八)
- Android-java调用本地方法返回字符串显示在界面上/NDK-JNI开发实例(二)
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- Android-本地方法C调用Java中的方法/NDK-JNI开发实例(六)
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法实现边缘检测代码(2)
- Android-NDK开发之基础--Android JNI实例代码(二)-- 获取/设置类的域或者说属性字段
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- Android JNI简单实例(Android java调用C/C++代码)
- 【学习Android NDK开发】Java通过JNI调用native方法
- JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android-调用本地方法实现将C进程分支出来即生成系统进程/NDK-JNI开发实例(九)
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android 在JNI中执行Java方法--C/C++调用Java
- Cocos2d-x游戏开发之Cocos2dx通过JNI调用Android的Java代码(webView实例)