返回> 网站首页
创建调用动态库的Jni接口文件
yoours2021-06-30 19:58:29
【Java】
简介一边听听音乐,一边写写文章。
一、创建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文件添加必须的接口。