Android JNI开发小结
2017-11-09 10:33
246 查看
JNI使用,简单解释其中的含义,具体示例在附件类可以找到,例子都属于简单易懂
如何配置使用 CMAKE开发
extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名;exter “C”{jni代码}
JNIEXPORT void JNICALL Java_util_JNIUtils_login(JNIEnv *env, jobject obj, jstring str);
(1)JNIEXPORT :在Jni编程中所有本地语言实现Jni接口的方法前面都有一个”JNIEXPORT”,这个可以看做是Jni的一个标志,至今为止没发现它有什么特殊的用处。
(2)void :这个学过编程的人都知道,当然是方法的返回值了。
(3)JNICALL :这个可以理解为Jni 和Call两个部分,和起来的意思就是 Jni调用XXX(后面的XXX就是JAVA的方法名)。
(4)Java_util_JNIUtils_login:这个就是被上一步中被调用的部分,也就是Java中的native 方法名,这里起名字的方式比较特别,是:包名+类名+方法名。
(5)JNIEnv * env:这个env可以看做是Jni接口本身的一个对象,在jni.h头文件中存在着大量被封装好的函数,这些函数也是Jni编程中经常被使用到的,要想调用这些函数就需要使用JNIEnv这个对象。例如:env->GetObjectClass()。(详情请查看jni.h)
(6)jobject obj:例如在Test类的main方法中有这样一段代码:
Test t=new Test(); t.firstTest();
这个jobject需要两种情况分析。上段代码中firstTest方法是一个非静态方法,在Java中要想调用它必须先实例化对象,然后再用对象调用它,那这个时候jobject就可以看做Java类的一个实例化对象,也就是obj就是t。如果firstTest是一个静态方法,那么在Java中,它不是属于一个对象的,而是属于一个类的,Java中用Test.firstTest()这样的方式来调用,这个时候jobject就可以看做是java类的本身,也就是obj就是Test.class
jni调用java方法,具体查询可看附件JNI编程指南
方法详细介绍示例一
简单创建类对象获取类对象示例二
如何配置使用 CMAKE开发
extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名;exter “C”{jni代码}
JNIEXPORT void JNICALL Java_util_JNIUtils_login(JNIEnv *env, jobject obj, jstring str);
(1)JNIEXPORT :在Jni编程中所有本地语言实现Jni接口的方法前面都有一个”JNIEXPORT”,这个可以看做是Jni的一个标志,至今为止没发现它有什么特殊的用处。
(2)void :这个学过编程的人都知道,当然是方法的返回值了。
(3)JNICALL :这个可以理解为Jni 和Call两个部分,和起来的意思就是 Jni调用XXX(后面的XXX就是JAVA的方法名)。
(4)Java_util_JNIUtils_login:这个就是被上一步中被调用的部分,也就是Java中的native 方法名,这里起名字的方式比较特别,是:包名+类名+方法名。
(5)JNIEnv * env:这个env可以看做是Jni接口本身的一个对象,在jni.h头文件中存在着大量被封装好的函数,这些函数也是Jni编程中经常被使用到的,要想调用这些函数就需要使用JNIEnv这个对象。例如:env->GetObjectClass()。(详情请查看jni.h)
(6)jobject obj:例如在Test类的main方法中有这样一段代码:
Test t=new Test(); t.firstTest();
这个jobject需要两种情况分析。上段代码中firstTest方法是一个非静态方法,在Java中要想调用它必须先实例化对象,然后再用对象调用它,那这个时候jobject就可以看做Java类的一个实例化对象,也就是obj就是t。如果firstTest是一个静态方法,那么在Java中,它不是属于一个对象的,而是属于一个类的,Java中用Test.firstTest()这样的方式来调用,这个时候jobject就可以看做是java类的本身,也就是obj就是Test.class
jni调用java方法,具体查询可看附件JNI编程指南
方法详细介绍示例一
简单创建类对象获取类对象示例二
相关文章推荐
- Android游戏开发----JNI小结
- Android游戏开发----JNI小结
- Android Studio 中JNI开发流程小结
- Android JNI开发摘录(五)之对象引用处理
- 【嗨兴科技】Android 3.0.1 图解配置NDK开发环境以及Hello Word To JNI方法总结
- Android jni 开发中C/C++层打印Log信息
- Android jni简便开发流程
- 关于eclipse开发android项目时javah生成jni找不到类文件
- Android Studio Jni开发(二)实现Native调用java方法和Native调用Android API
- android jni开发流程
- Android的NDK开发(3)————JNI数据类型的详解
- Android-JNI开发-环境配置(eclipse)
- 史上最易懂的Android jni开发资料--NDK环境搭建
- 【转】 Android的NDK开发(1)————Android JNI简介与调用流程
- 记录Android studio JNI开发的三种方式(推荐)
- Android JNI 开发之NDK环境配置
- Android开发:使用JNI读取应用签名
- Android游戏开发实践(1)之NDK与JNI开发01
- Android的NDK开发(3)————JNI数据类型的详解
- 一天掌握Android JNI开发