JNI编程(C/C++)
文章目录
第1节:快速上手
一个简单的demo,快速跑通流程,详见使用C/C++实现Java的Native方法接口(JNI)(1)快速上手
第2节:实例详解(C语言版本)
本节针对第1节中的内例子详细说明(C),详见使用C/C++实现Java的Native方法接口(JNI)(2)实例详解(C语言版本)
第3节:实例详解(C++语言版本)
本节针对第1节中的内例子详细说明(C++),详见使用C/C++实现Java的Native方法接口(JNI)(3)实例详解(C++语言版本)
第4节:JNI数据类型
本节介绍了JNI中定义的部分数据类型,详见使用C/C++实现Java的Native方法接口(JNI)(4)JNI数据类型
第5节:jstring类和jobject类的等对象数据的方法
本节详细描述了JNI中最常用的jstring(java.lang.String)和jobject (Obejct)的相关操作方法,详见使用C/C++实现Java的Native方法接口(JNI)(5)jstring类和jobject类的等对象数据的方法
第6节:多种JNI数据类型的代码实例
编写包含native方法的java类pers.h01c.jni.jniDataTypes
// file location: $ProjectDir/src/pers/h01c/jni/jniDataTypes.java
package pers.h01c.jni;
import java.util.ArrayList;
public class jniDataTypes {
static {
System.loadLibrary("jniDataTypes");
}
static long callFuncCount = 0;
int elementCount = 0;
native float primitiveTypesFunc(boolean is_neg, short left_sift, int base , long after_point);
native String stringTypeFunc(String base_str, int pre_len, int repeat_times);
native int objectTypeFunc(ArrayList<String> array_list);
}
使用javah生成.h头文件
//file location: $ProjectDir/jni/pers_h01c_jni_jniDataTypes.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class pers_h01c_jni_jniDataTypes */
#ifndef _Included_pers_h01c_jni_jniDataTypes
#define _Included_pers_h01c_jni_jniDataTypes</