ndk c调java
来源:互联网 发布:雷锋的故事 知乎 编辑:程序博客网 时间:2024/06/03 12:39
//// Created by lizhiduo on 17-9-23.//#include "com_example_lizhiduo_jni_JNI.h"JNIEXPORT jstring JNICALL Java_com_example_lizhiduo_jni_JNI_sayHello (JNIEnv * env, jclass obj){ return env->NewStringUTF("hello from jni"); }JNIEXPORT void JNICALL Java_com_example_lizhiduo_jni_JNI_callBackHelloFromJava (JNIEnv * env, jclass obj){ //1 得到字节码 jclass jclass1 = env->FindClass( "com/example/lizhiduo/jni/JNI"); //jclass jclass1 = env->GetObjectClass( obj); //2 得到方法 方法签名 ()V jmethodID jmethodID1 = env->GetMethodID( jclass1, "sayHelloFromJava", "()V"); //3 实例化对象 jobject jobject1 = env->AllocObject( jclass1); //4 调用方法 env->CallVoidMethod( jobject1, jmethodID1);}JNIEXPORT jint JNICALL Java_com_example_lizhiduo_jni_JNI_callBackAdd (JNIEnv *env, jclass obj, jint a, jint b){ //1 得到字节码 jclass jclass1 = env->FindClass( "com/example/lizhiduo/jni/JNI"); //2 得到方法 方法签名 ()V jmethodID jmethodID1 = env->GetMethodID( jclass1, "add", "(II)I"); //3 实例化对象 jobject jobject1 = env->AllocObject( jclass1); //4 调用方法 jint val = env->CallIntMethod( jobject1, jmethodID1, a, b); return val;}
上面代码便是jni中的c 代码,主要利用java的反射机制获取jni类的方法,实例化对象进行调用。 完整代码见 https://github.com/lizhiduo/jni 。
阅读全文
0 0
- ndk c调java
- NDK 之 C调用Java
- NDK Java C 数据类型转换
- ndk c调用java函数
- ndk c调用java函数
- ndk c调用java函数
- NDK 之 C调用Java
- NDK 之 C调用Java
- NDK Java 调用 C代码
- C_Cpp-C-JNI-NDK-Java
- android NDK--C 调用java
- NDK的基础教程 二 c语言回调java语言
- android NDK 之C调java属性及方法
- JNI(或者也可以说是NDK) JAVA 调 .C文件
- NDK编程:C回调Java方法
- NDK Java 调用 C/C++ (二)
- NDK C/C++ 调用 Java (三)
- NDK java和c参数传递
- C语言程序,求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
- 动态规划-343. Integer Break
- Spring系列之Spring常用注解总结
- 使用Loader获取Android联系人列表
- leetcode--189.Rotate
- ndk c调java
- stl set讲解
- u启动盘制作
- 成对使用new和delete时要采取相同形式
- leetcode--169.Major Element
- ConcurrentHashMap分析
- 总结 Date 2017.09.23
- java开发C语言编译器:消除冗余语句和把ifelse控制语句编译成字节码
- 微软面经