美文网首页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