Ndk学习之JNI方法和静态方法(java-->C)
来源:互联网 发布:矩阵除法 编辑:程序博客网 时间:2024/05/24 06:22
在java中定义方法和静态方法
public native void accessMethod();public native void accessStaticMethod();
javah生成头文件
/* * Class: com_boom_JNITest * Method: accessMethod * Signature: ()V */JNIEXPORT void JNICALL Java_com_boom_JNITest_accessMethod (JNIEnv *, jobject);/* * Class: com_boom_JNITest * Method: accessStaticMethod * Signature: ()V */JNIEXPORT void JNICALL Java_com_boom_JNITest_accessStaticMethod
源代码中实现具体
1.普通方法
//访问java方法JNIEXPORT void JNICALL Java_com_boom_JNITest_accessMethod(JNIEnv *env, jobject jobj){//jclassjclass cls = (*env)->GetObjectClass(env,jobj);//jmethodIDjmethodID mid = (*env)->GetMethodID(env,cls,"getRandomInt","(I)I");//调用//Call<Type>Methodjint random = (*env)->CallIntMethod(env,jobj,mid,200);printf("random num:%#x",random);}
2.静态方法
//访问Java静态方法JNIEXPORT void JNICALL Java_com_boom_JNITest_accessStaticMethod(JNIEnv *env, jobject jobj){//jclassjclass cls = (*env)->GetObjectClass(env,jobj);//jmethodID 签名: ()Ljava/lang/String; 通过javap -s-p 类的犬类名 获取jmethodID mid = (*env)->GetStaticMethodID(env,cls,"getUUID","()Ljava/lang/String;");//调用//CallStatic<Type>Methodjstring uuid = (*env)->CallStaticObjectMethod(env,cls,mid);//随机文件名称 uuid.txt//jstring -> char*//isCopy JNI_FALSE ,代表java和C操作的是同一个字符串char *uuid_str = (*env)->GetStringUTFChars(env,uuid,NULL);//拼接char filename[100];sprintf(filename,"E://s.text",uuid_str);FILE *fp = fopen(filename,"w");fputs("i love u",fp);fclose(fp);}
阅读全文
0 0
- Ndk学习之JNI方法和静态方法(java-->C)
- JNI/NDK开发指南(五)---C/C++访问Java实例方法和静态方法
- Android Stuido Ndk-Jni 开发(五):Jni回调java静态方法和非静态方法
- Ndk学习之JNI属性和静态属性(Java->C)
- JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法
- JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法
- JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法
- Ndk学习之JNI调用父类方法(java-->C)
- Ndk学习之JNI构造函数(java-->C-->Java)
- Ndk学习之JNI中文问题(java-->C-->Java)
- Ndk学习之JNI获取数组(Java-->C-->Java)
- Ndk学习之JNI传入数组(java-->C)
- Android JNI和NDK学习(04)--NDK调试方法
- JNI基础(七)C调java静态方法代码
- Android-本地方法C调用Java中的方法/NDK-JNI开发实例(六)
- 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
- pandas--系列之groupby
- 关于SSH无密登录出现的一些细节问题
- GVE基金会亮相北京中关村 出席区块链前沿技术分享论坛
- 针对摄像机很难对准物体问题
- 水仙花数
- Ndk学习之JNI方法和静态方法(java-->C)
- 第十周 项目3
- pycharm当中,如何导入python2或者python3环境
- 教你解决Python数据分析可视化时可以显示中文
- 哈希算法-Top K
- 封装jdbc
- 关于unit3d中GUI texture 的相关问题
- 自我怀疑的开发者:你够好吗?
- 【C#】自己写构造string.Join()方法