美文网首页Android NDK开发
NDK开发(二)--JNI基础知识

NDK开发(二)--JNI基础知识

作者: 骑着蜗牛闯世界666 | 来源:发表于2019-11-24 23:00 被阅读0次

一、JNI数据类型

JNI的数据类型包含两种:基本类型和引用类型,每个java的数据类型,都有相对应的JNI类型。

1、基本数据类型

Java中的数据类型的对应关系如下:


-w287

2、引用类型

Java中的引用数据类型的对应关系如下:


-w521

二、JNI类型签名

JNI的类型签名标识一个特定的Java类型,这个类型可以是类也可以是方法或者数据类型。

  • 类签名

L+包名+类名+;的形式,在编写的时候,需要将全路径里面的"."替换成“/”,例如最常用的java.land.String对应的签名是Ljava/land/String;

  • 基本数据类型签名

采用的是大写字符来表示。基本上都是基本数据类型的首字母大写,但boolean和long除外,因为B已经被byte占用,L表示的是类签名。


-w311
  • 对象签名和数组签名

其实就是类签名,譬如String对象额签名是Ljava/lang/String;。一维数组签名的格式为[+类型签名,譬如int数组,对应的签名就是[I,依此类推,其他类型对应的数组签名如下:
int[] 其描述符为[I float[] 其描述符为[F String[] 其描述符为[Ljava/lang/String; Object[] 描述符为[Ljava/lang/Object;
多维数组则是 n个[ +该类型的域描述符,N代表的是几维数组。例如:
int[][] 其描述符为[[I float[][] 其描述符为[[F

当在开发过程中,可以使用javap -s + 对应的类,即可打印出所有的方法签名。

REF

https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp9502

相关文章

网友评论

    本文标题:NDK开发(二)--JNI基础知识

    本文链接:https://www.haomeiwen.com/subject/pvbrwctx.html