当VM载入libxxx_jni.so这个库时,就会呼叫JNI_OnLoad()函数。在JNI_OnLoad()中注册本地函数,继续调用到(),该函数向VM(即AndroidRuntime)注册gMethods[]数组中包含的本地函数了。()起到了以下两个作用:
2,可以在执行期间进行本地函数的替换。因为数组是一个<java中函数名字,本地函数指针>的对应表,所以可以在程序的执行过程中,多次呼叫()函数来更换本地函数的指针,提高程序的弹性。
其中在java数据类型中,除了java中基本数据类型和数组,Class,String,Throwable,其余所有的java对象的数据类型在JNI中用jobject表示。下面来看一段代…………………………………………………………………………