宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述JAVA_JNI字段描述符“([Ljava/lang/String;
)V”(Android)相关的知识,希望能为你提供帮助。
JNI字段描述符“([Ljava/lang/String;
)V
“([Ljava/lang/String;
)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。、
一个数组int[],就需要表示为这样"[I"。
如果多个数组double[][][]就需要表示为这样
"[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。
如果以一个L开头的描述符,就是类描述符,它后紧跟着类的字符串,然后分号“;”结束。
比如"Ljava/lang/String;
"就是表示类型String;
"[I"就是表示int[];
"[Ljava/lang/Object;
"就是表示Object[]。
JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下:
(参数描述符)返回类型
当一个函数不需要返回参数类型时,就使用”V”来表示。
比如"()Ljava/lang/String;
"就是表示String f();
【JAVA_JNI字段描述符“([Ljava/lang/String;
)V”(Android)】"(ILjava/lang/Class;
)J"就是表示long f(int i, Class c);
"([B)V"就是表示void String(byte[] bytes);
Java
类型 |
符号 |
Boolean |
Z |
Byte |
B |
Char |
C |
Short |
S |
Int |
I |
Long |
J |
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[],
另外。引用类型(除基本类型的数组外)的标示最后都有个"; "
例如:
"()V" 就表示void Func();
"(II)V" 表示 void Func(int, int);
"(Ljava/lang/String; Ljava/lang/String; )I".表示 int Func(String,String)
”
推荐阅读
- Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files defi
- [RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法
- 解决 Cordova 打包 vue项目为 APP 后,在安卓平台下 touchMove 事件不生效的问题
- 2 Interrupting Appropriately
- linux 安装沙盒virtualenv virtualenvwrapper
- android 超简单的拖动按钮 悬浮按钮 吸附按钮 浮动按钮
- 华为荣耀立方价格多少钱?荣耀立方价格
- 荣耀立方上市时间啥时候?华为荣耀立方啥时候上市?
- oppo自动选择手环价格多少钱?oppo自动选择手环o-band价格