所有jni函数的调用都使用env指针,它是任意一个本地方法的第一个参数。
env指针是指向一个函数指针表的指针(如图),因此,必须在每个jni函数访问前加前缀
(*env)->,以确保间接引用函数指针。使用时只需提供(*env)->前缀,无需关心
函数指针表。
      _____________       _____________      ______________
env  |         ----|---->|         ----|--->|    保留      |
      -------------       -------------      --------------
                         |     。      |    |     保留      |
                         |     。      |     --------------
                         |     。      |    |     保留      |
                          -------------      --------------
                                            |     保留      |
                                             --------------
                                            | GetVersion  --|--->
                                             --------------
                                            | Define Class -|--->
                                             ---------------
                                            | Find Class ---|--->
                                             ---------------
                                            |      。       |
                                            |      。       |
                                            |      。       |
                                             ---------------