前言:
上一篇博客我们讲到了Android studio 开发jni的基本配置,这一篇博客我们主要讲java和c++之间通过jni是如何交互的.
根据上图的标记的顺序进行讲解:
1.include 可以理解成java中的import
2."JNIEXPORT" 同java中的jni方法要被native修饰一样
3.方法名就是对应java中包名_类名_方法名
4.JNIEnv:JNIEnv 可以说是整个 JNI 的核心类,是 Java 和 C 通讯的桥梁,它可以协助我们将
JNI 类型转换成 C 类型,不仅如此,调用 Java 对象的方法,获取或者修改属性,都是由 JNIEnv 来做。
boolean:Z
、byte:B
、char:C
、short:S
、int:I
、long:J
、float:F
、double:D
、void:V
、[数组]:[和类型
Object对象:L包名/类名; 或 包名/类名$标识嵌套类;
例子(方法 ->- 对应的sig):
Java方法 | 对应的sig |
---|---|
void M1(int A,int B) |
"(II)V" |
void M2(String S) |
"(Ljava/lang/String;)V" |
void M3(int[] I) |
"([I)V" |
String M4(String S,int index) |
|
已经就是jni使用的一些基本函数, 上面代码的demo我会同步到github
Android技术交流:973579144
我的github开源项目