Android开发--JNI基础类型详解

1、原始数据类型的匹配:


其中jni中的本地类型都是以j开头,可以在c/c++中直接和c/C++类型互通互换!

2.复杂数据类型的匹配


几种复合数据类型,主要是字符串jstring和数组jarray。注意jni中复合数据类型不能直接转换为c/C++中相应的类型,
需要调用jni中自带的相应的方法来操作!
3.域描述符,分为原始数据类型的域描述符,和引用类型的域描述符。原始数据类型的域描述符如下图:


对于引用类型的域描述符,其以L开始,以;结束。对于数组,其为[+其类型的域描述符+;
比如:String类型的域描述符为Ljava/lang/String;int[]类型的域描述符为[I;Object[]类型的域描述符为[Ljava/lang/Object;
 
3.3 方法描述符
方法描述符,将参数类型的域描述符按照申明顺序放入一对括号中后跟返回值类型的域描述符。对于,没有返回值的,用V表示。看下面一组例子:
String test(); ----------------------------->()Ljava/lang/String;      详解:()中表示方法参数,最右边表示方法的返回数据类型
int f(int i, Object j);---------------------->(ILjava/lang/Object;)I   详解:()中表示方法参数,参数之间不需要有分割符号,最右边表示方法的返回数据类型
set(byte[] bs);---------------------------->([B;)V                        详解:()中表示方法参数,,最右边表示方法的返回数据类型


参考来源:JNI数据手册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值