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

第三,在HelloBabyJNI.cpp中添加我们的native method的方法实现,并且加入相应的形参。 

<pre class="cpp" name="code">// HelloBabyJNI.cpp : Defines the entry point for the DLL application.    //       #include "stdafx.h"       BOOL APIENTRY DllMain( HANDLE hModule,                           DWORD  ul_reason_for_call,                           LPVOID lpReserved)   {       return TRUE;   }   //以上为VC自动生成/*     /* 这就是是java生成的头文件的native方法实现,其命名约定为 Java_包名_方法名     *  JNIEXPORT JNICALL JNIEnv 以及jobject皆是Jni的关键字    * 具体实现则完全按照C++语法操作 */   JNIEXPORT jint JNICALL Java_com_lover_hellojni_HelloBabyJNI_add     (JNIEnv * env, jobject, jint a, jint b)   {        int result =a+b ;        return result ;   }  


那么,这个result则是我们本地方法需要返回给java调用者的。

最后,大功告成前,可别得意。我们需要为我们的工程添加Java JNI的头文件引用,具体添加文件在我们安装的jdk目录下。

成dll动态链接库--->单栏上 Build--->Build HelloBabyJNI.dll ,成功运行后,会在当前工程目录下的Debug文件下找到我们创建的HelloBabyJNI.dll动态链接库。

                  

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

  

三、运行Java工程

通过前两个大步骤,我们成功的创建了Java工程以及其所调用的dll动态链接库,为了让系统在调用的时候能够访问到HelloBabyJNI.dll,我只是简单的将其放入C:\Window\System32文件夹下(Window7中)。 成功运行之前创建的Java工程。输出为:

总结:

在Java原生JNI调用的时候,重点掌握以下几个方面:

1、javah指令的掌握 ;

2、参数类型的映射 ;

3、生成的头文件(.h)中native method方法的理解以及实现上。

如此,则我们可以很好的掌握Java原生JNI的使用了。

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

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