在日常的Android NDK开发中,会不可避免的用到C与Java代码相互调用的情况。Java调用C的方法还好,C调用Java的方法就比较麻烦了。需要编写看着就头疼的Java方法描述符才能正确的调用Java方法。
其中常见的Java方法域和描述符如下表所示:
Java类型 | 签名 |
---|---|
Boolean | Z |
Byte | B |
Char | C |
Short | S |
Int | I |
Long | J |
Float | F |
Double | D |
Fully-qualified-class | Lfully-qualified-class |
type[] | [type |
Method type | (arg-type)ret-type |
通过上述对照表,我们可以通过C代码查找一个为String
类型的Java静态字段,例如:
1 | jfieldID staticJavaFieldId; |