成功运行后,我们可以在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工程,如同所示:
2,下一步,选择A simple DLL project
3,接下来,生成了我们的HelloJNI工程,切换至File View视图
首先,导入我们之前生成的HelloBabyJNI.h头文件(可能我的VC环境有问题,我在这儿新建了一个HelloBabyJNI.h文件,拷 贝了我们之前通过javah生成的.h的文件内容)
第 二,在StdAx.h文件添加如下需要引用的头文件: