干活前先把流程理清楚,先把工作场景,分析步骤
1.创建一个本地方法的java定义(就是native方法定义)
2.将java定义转化成c定义(c定义就是.h文件,就是头文件,头文件其实就是将各个.c文件中重复的声明、宏定义等提取出来放进一个文件中,便于其他.c文件共用这部分的代码)
3.实现c定义(.c文件引用c定义,然后将c定义中的方法实现了)
4.将c实现转化成链接库
5.加载链接库,调用本地方法触发链接库的实现
先查看本地方法的类,步骤1
/**
* 调用本地方法的组件
*/
public class NativeUtils {
/*比大小*/
public native int max(int i, int y);
}
编译生成字节码文件:javac NativeUtils.java,目录下多了.class文件,步骤2
编译生成头文件:javah NativeUtils,目录下多了.h文件
查看头文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class NativeUtils */
#ifndef _Included_NativeUtils
#define _Included_NativeUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: NativeU