所有jni函数的调用都使用env指针,它是任意一个本地方法的第一个参数。
env指针是指向一个函数指针表的指针(如图),因此,必须在每个jni函数访问前加前缀
(*env)->,以确保间接引用函数指针。使用时只需提供(*env)->前缀,无需关心
函数指针表。
_____________ _____________ ______________
env | ----|---->| ----|--->| 保留 |
------------- ------------- --------------
| 。 | | 保留 |
| 。 | --------------
| 。 | | 保留 |
------------- --------------
| 保留 |
--------------
| GetVersion --|--->
--------------
| Define Class -|--->
---------------
| Find Class ---|--->
---------------
| 。 |
| 。 |
| 。 |
---------------
env指针是指向一个函数指针表的指针(如图),因此,必须在每个jni函数访问前加前缀
(*env)->,以确保间接引用函数指针。使用时只需提供(*env)->前缀,无需关心
函数指针表。
_____________ _____________ ______________
env | ----|---->| ----|--->| 保留 |
------------- ------------- --------------
| 。 | | 保留 |
| 。 | --------------
| 。 | | 保留 |
------------- --------------
| 保留 |
--------------
| GetVersion --|--->
--------------
| Define Class -|--->
---------------
| Find Class ---|--->
---------------
| 。 |
| 。 |
| 。 |
---------------
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货