Android JNI之数据类型
JNI中数据类型的意义在于桥接Java数据类型与C数据类型。
简单数据类型:
|
Java Type
|
Native Type
|
Description
|
|---|---|---|
|
boolean
|
jboolean
|
unsigned 8 bits
|
|
byte
|
jbyte
|
signed 8 bits
|
|
char
|
jchar
|
unsigned 16 bits
|
|
short
|
jshort
|
signed 16 bits
|
|
int
|
jint
|
signed 32 bits
|
|
long
|
jlong
|
signed 64 bits
|
|
float
|
jfloat
|
32 bits
|
|
double
|
jdouble
|
64 bits
|
|
void
|
void
|
N/A
|
引用类型:
特征类型(Signatures):
看到Signatures是不是有点眼熟,在我的Android JNI之静态注册中一带而过的javah自动生成头文件,注意看javah不仅完成了方法名的转换,而且在方法注释中标注了该方法的Signature,下面说一下这个对应关系。
|
Type Signature
|
Java Type
|
|---|---|
|
Z
|
boolean
|
|
B
|
byte
|
|
C
|
char
|
|
S
|
short
|
|
I
|
int
|
|
J
|
long
|
|
F
|
float
|
|
D
|
double
|
|
L fully-qualified-class ;
|
fully-qualified-class
|
|
[ type
|
type[]
|
|
( arg-types ) ret-type
|
method type
|
举个例子,对于Java方法
long f (int n, String s, int[] arr);
其对应的特征值就是(ILjava/lang/String;[I)J
PS:这个特征值在动态注册的时候很重要,这关系到你在Java类中声明的native方法能否正确找到对应的native方法
Android JNI之数据类型的更多相关文章
- Android JNI和NDK学习(06)--JNI的数据类型(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3094037.html 本文介绍JNI的数据类型.NDK中关于JNI数据类型的 ...
- android jni ——Field & Method --> Accessing Field
现在我们知道了怎样使用native code访问简单的数据类型和引用参考类型(string,array),下面我们来介绍怎样让jni代码去访问java中的成员变量和成员函数,然后可以再jni中回调ja ...
- android JNI处理图片的例子
android JNI处理图片的例子 原地址:http://blog.csdn.net/xjwangliang/article/details/7065670 <pre class=" ...
- Android JNI的使用浅析
介绍JNI的好文章: http://blog.csdn.net/yuanzeyao/article/details/42418977 JNI技术对于多java开发的朋友相信并不陌生,即(java na ...
- android jni 总复习(转载)
本文全文转载自:http://www.cnblogs.com/shuqingstudy/p/4909089.html,非常感谢 package com.test.androidjni; import ...
- Android JNI 数组操作
JNI 中有两种数组操作,基础数据类型数组和对象数组,JNI 对待基础数据类型数组和对象数组是不一样的. 基本数据类型数组 对于基本数据类型数组,JNI 都有和 Java 相对应的结构,在使用起来和基 ...
- [ 转载 ] Android JNI(一)——NDK与JNI基础
Android JNI(一)——NDK与JNI基础 隔壁老李头 关注 4.4 2018.05.09 17:15* 字数 5481 阅读 11468评论 8喜欢 140 本系列文章如下: Androi ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- Android JNI(一)——NDK与JNI基础
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
随机推荐
- Kail安装VMtools
0x00 前言 之前用吾爱的xp虚拟机,总是装不上vmtools,真是难受.每次跨机器粘贴复制都一件极其痛苦的事,而且虚拟机还不能直接浏览硬盘上的文件.虽说安全性保证了,但是这是真的痛苦.这两天开始用 ...
- 移动端商城项目代码截图 使用vue.js。
- [JAVA]《JAVA开发手册》规约详解
[强制] 使用 Map 的方法 keySet()/values()/entrySet()返回集合对象时,不可以对其进行添加元素操作,否则会抛出 UnsupportedOperationExceptio ...
- CRM【第二篇】: stark组件
介绍: stark组件,是一个帮助开发者快速实现数据库表的增删改查+的组件.目标: 10s 中完成一张表的增删改查. 前戏: django项目启动时,自定义执行某个py文件. django启动时,且在 ...
- 04-Python函数
一.简介 函数是可重用的程序代码块.函数的作用,不仅可以实现代码的复用,更能实现代码的一致性.一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现. 函数用关键字def来定义,def关 ...
- Tableau如何嵌入HTML
原文地址:https://blog.csdn.net/read_you2011/article/details/81476108 作者:read_you2011 说明 作为领先的数据可视化工具,Tab ...
- oracle数据库查询分组之外的数据方法
select * from (select t.*,row_number() over(partition by 分组字段 order by rownum) rn from 表名 t where 条件 ...
- WPF在.NET 5 中的线路图
WPF是用于构建Windows桌面应用程序的.NET Core UI框架.WPF的所属权最近已经移交给了我们的团队(Windows下开发生态系统和平台的团队).这种转变使跨UI框架(即WinUI和WP ...
- OSCP Learning Notes - Exploit(6)
Antivirus Bypassing Tools: Kali Linux Detection Platform: https://www.virustotal.com/gui/home/upload ...
- ATX 学习 (二)-Atx Weditor
1.Atx的安装 安装adb使用以下命令安装atx最新版pip install --pre -U uiautomator2 手机接到电脑上之后,需要先运行一下命令:python -m uiautoma ...