返回> 网站首页 

创建调用动态库的Jni接口文件

yoours2021-06-30 19:58:29 Java 阅读 2053

简介一边听听音乐,一边写写文章。

一、创建java应用程序

二、编写java接口文件

例如:

package com.yoours.berryz2007.jni;

public class ReaderJni {

    public static native int openReader(String ip, String port);

    public static native void closeReader(int hReader);

}

三、编写调用文件

package com.yoours.berryz2007.jni;

public class TestDemo {

    public static void main(String[] args) {

        ReaderJni.openReader("127.0.0.1", "6000");

    }

}

四、根据java生成.h文件

1. 首先编译java文件,然后使用javah来创建:

javah  com.yoours.berryz2007.jni.ReaderJni

2. 生成的.h文件内容为:

#include 

#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_yoours_berryz2007_jni_ReaderJni
 * Method:    openReader
 * Signature: (Ljava/lang/String;Ljava/lang/String;)I
 */
JNIEXPORT jint JNICALL Java_com_yoours_berryz2007_jni_ReaderJni_openReader
  (JNIEnv *, jclass, jstring, jstring);

/*
 * Class:     com_yoours_berryz2007_jni_ReaderJni
 * Method:    closeReader
 * Signature: (I)V
 */
JNIEXPORT void JNICALL Java_com_yoours_berryz2007_jni_ReaderJni_closeReader
  (JNIEnv *, jclass, jint);

#ifdef __cplusplus
}
#endif

五、根据接口实现调用内容

        使用visual Studio编译C++工程生成最终的dll文件供Java调用,工程需要引用jni头文件路径:D:\AndroidJava\Java\jdk1.8.0_291\include

六、其他

        在sdk动态库接口已经存在且不能修改时,可将生成的jni文件编写成动态库调用sdk接口的形式,提供给java应用使用。并生成几个接口后,直接修改jni文件添加必须的接口。


微信小程序扫码登陆

文章评论

2053人参与,0条评论