开头总要说点什么
青山依旧,绿水长流。要想把 JNI 拿捏在手里任意操作,基本点一定要抓牢。基本点也没多少,我就拣点基本的。一个中心,两个基本点。邓爷爷亲切的话语,环绕在耳边,久久不能散去。
基本点1. 数据类型
懵逼的新数据类型,有个熟悉的东东做对比最好不过了,我是谁一目了然。当然,不仅仅是对比。java 的目的是要娶c++,JNI 这媒婆是一个有原则的人,java找上我, 必须穿我的新衣。这过程,我们也不需要做什么,安安心心看着,JNI 服务先进,自动化穿衣。
java类型 | jni类型 |
---|---|
boolean | jboolean |
byte | jbyte |
char | jchar |
short | jshort |
int | jint |
long | jlong |
float | jfloat |
double | jdouble |
void | void |
对象 | jobect |
String(出轨对象,就是不一样的待遇) | jstring |
数组 | j[*]array |
上面这个表的类型,理解了就好,不要多问。至于对象,还是给点提示,出轨的,我也很无奈。这个对象呢,需要利用反射去拆分,一个巨大的痛点,从入门到差点放弃。
基本点2. 类型签名
零散的代码拼凑在一起成为了一个交流窗口,JNI 根据 java 接口信息参数挨个进行类型签名,然后才能进行访问。废话不多讲,啪啪啪,几行表格上青天。
java类型 | 类型签名 |
---|---|
boolean | Z |
byte | B |
char | C |
short | S |
int | I |
long | J |
float | F |
double | D |
对象 | L对象详细身份; |
type[] | [ type |
解释,已经显得多余了,都懂都懂。
结束
到了这里,两个基本点在手,天下我有。JNI 的奇迹,已经走在路上了。
附送一张机票,带你领略世界的浩瀚