JNI中java类型的简写
来源:互联网 发布:浪拍云的淘宝人生 编辑:程序博客网 时间:2024/06/05 06:59
在JNI中,当我们使用GetFieldID/GetStaticFieldID或GetMethodID/GetStaticMethodID及定义JNINativeMethod等时,我们需要表示成员变量的类型,或函数传入参数或返回的类型。JNI把Field的类型,或函数传入参数或返回值的类型进行简写以char*的形式进行表示。
对于成员变量,直接用java类型的简写表示成员变量的类型就可以
比如:
"I"表示该成员变量是Int类型
"Ljava/lang/String;"表示该成员变量是String类型
示例1:
jfieldID str = (env)->GetFieldID(objectClass,"name","Ljava/lang/String;");
jfieldID ival = (env)->GetFieldID(objectClass,"serial","I");
对于成员函数,是以"(*)+"形式表示函数的有哪些传入参数,传入参数的类型,返回值的类型。"()" 中的字符表示传入参数,后面的则代表返回值。
例如:
"()V" 就表示void Func();
"(II)V" 表示 void Func(int, int);
"(Ljava/lang/String;Ljava/lang/String;)I".表示 int Func(String,String)
示例2:
static JNINativeMethod gPowerManagerServiceMethods[] = {
/* name, signature, funcPtr */
{ "nativeInit", "()V",
(void*) android_server_PowerManagerService_nativeInit },
{ "nativeSetPowerState", "(ZZ)V",
(void*) android_server_PowerManagerService_nativeSetPowerState },
{ "nativeStartSurfaceFlingerAnimation", "(I)V",
(void*) android_server_PowerManagerService_nativeStartSurfaceFlingerAnimation },
};
关于类型简写,首先请参照下表。
表A
Java 类型
符号
Boolean
Z
Byte
B
Char
C
Short
S
Int
I
Long
L
Float
F
Double
D
Void
V
objects对象
以"L"开头,以";"结尾,中间是用"/" 隔开的包及类名。
比如:Ljava/lang/String;
如果是嵌套类,则用$来表示嵌套。
例如 "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"
另外数组类型的简写,则用"["加上如表A所示的对应类型的简写形式进行表示就可以了,
比如:[I表示 int [];[L/java/lang/objects;表示Objects[],另外。引用类型(除基本类型的数组外)的标示最后都有个";"
阅读全文
0 0
- 【JNI】JNI中java类型的简写
- 【JNI】JNI中java类型的简写
- JNI中java类型的简写
- jni中java类型的简写
- JNI中java类型的简写
- JNI学习3——JNI中java类型的简写
- JNI中java类型的简写,getMethod等参数的说明
- Java中JNI:JNIEnv类型和jobject类型的解释
- JAVA中简写
- Java中JNI:JNIEnv类型中方法的使用
- jni中Java和本地类型的些映射关系
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- Jni中本地类型和java类型对应表
- JNI中java类型与C/C++类型对应关系
- 排序算法小结之插入排序
- Codeforces 854 D Jury Meeting(前缀和后缀)
- HDU 1541 Stars(树状数组-水题,模板题)
- HDU 1556 Color the ball(树状数组-水题)
- Lintcode 拓扑排序
- JNI中java类型的简写
- Hibernate--HQL基础语法
- iOS 用RunTime重写KVO<附Demo>
- Pyspark 如何对变量做累计增量运算
- HDU 1754 I Hate It(线段树-水题,模板题)
- opencv对二值图像进行颜色反色操作
- 设计模式-生产者消费者模式 常见场景: 某个模块负责产生数据,这些数据由另一个模块来负责处理。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 该模式还需要有一个缓冲区处于生
- subliem text 3编译C\C++
- 刷题 集合