Android中JNI的使用之一:Java原生JNI的使用以及图解(2)

成功运行后,我们可以在src文件夹下找到com_lover_hellojni_HelloBabyJNI.h文件,这个文件就是我们需要找到的约定接口,它  的命名规范为 包名_Java文件名。为了可理解性,我们将其重命名为HelloBabyJNI.h文件,内容如下:              

 

/* DO NOT EDIT THIS FILE - it is machine generated */   #include <jni.h>    /* Header for class com_lover_hellojni_HelloBabyJNI */      #ifndef _Included_com_lover_hellojni_HelloBabyJNI    #define _Included_com_lover_hellojni_HelloBabyJNI    #ifdef __cplusplus    extern "C" {   #endif    /*   * Class:     com_lover_hellojni_HelloBabyJNI   * Method:    add   * Signature: (II)I   */   /*   * java native method通过javah指令生成的约定接口   *     */   JNIEXPORT jint JNICALL Java_com_lover_hellojni_HelloBabyJNI_add     (JNIEnv *, jobject, jint, jint);      #ifdef __cplusplus    }   #endif    #endif  


PS:1, 由于-jni指令在javah中是默认选项,因此我们可以忽略掉它

            2,在Dos中, .代表当前路径,也就是E:\MyCode\AndroidCode\HelloBabyJNI\src,我们可以简单的使用 . 来指定当前路径

           于是,一个简约的javah指令如下所示:

          

  此外,我们还可以在工程menu的bin文件夹下来执行javah指令,只需要将上面的bin替换src则可。当然,最后生成的.h文件在bin文件夹下。 

二、使用MS VC生成dll动态链接库:

     1,创建DLL工程,如同所示:

                 

Android中JNI的使用之一:Java原生JNI的使用以及图解

    2,下一步,选择A simple DLL project

              

Android中JNI的使用之一:Java原生JNI的使用以及图解

                 

3,接下来,生成了我们的HelloJNI工程,切换至File View视图

首先,导入我们之前生成的HelloBabyJNI.h头文件(可能我的VC环境有问题,我在这儿新建了一个HelloBabyJNI.h文件,拷   贝了我们之前通过javah生成的.h的文件内容)

第 二,在StdAx.h文件添加如下需要引用的头文件:                     

Android中JNI的使用之一:Java原生JNI的使用以及图解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwddyj.html