首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android JNI 施用的数据结构JNINativeMethod详解

2012-07-01 
Android JNI 使用的数据结构JNINativeMethod详解(II)V 表示 void Func(int, int)?具体的每一个字符的对

Android JNI 使用的数据结构JNINativeMethod详解

"(II)V" 表示 void Func(int, int);

?

具体的每一个字符的对应关系如下

?

字符 Java类型 C类型

V????? void??????????? void
Z?????? jboolean???? boolean
I??????? jint??????????????int
J???????jlong??????????? long
D????? jdouble?????? double
F????? jfloat??????????? float
B????? jbyte??????????? byte
C????? jchar?????????? char
S????? jshort????????? short

?

数组则以"["开始,用两个字符表示

?

[I?????? jintArray????? int[]
[F???? jfloatArray??? float[]
[B???? jbyteArray??? byte[]
[C??? jcharArray??? char[]
[S??? jshortArray?? short[]
[D??? jdoubleArray double[]
[J???? jlongArray???? long[]
[Z??? jbooleanArray boolean[]

?

上面的都是基本类型。如果Java函数的参数是class,则以"L"开头,以";"结尾中间是用"/" 隔开的包及类名。而其对应的C函数名的参数则为jobject. 一个例外是String类,其对应的类为jstring

?

Ljava/lang/String; String jstring
Ljava/net/Socket; Socket jobject

?

如果JAVA函数位于一个嵌入类,则用$作为类名间的分隔符。

例如 "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"

?

引文地址:http://hi.baidu.com/zhlg_hzh/blog/item/f0d782081f2f45d963d986f5.html

热点排行