在日常的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; |
