1、首先在 程序中写入 假设为 NDK.java
statict{
System.loadLibrary(libName)
}
libName//代表文件的名称
2、 相同在程序中写入 static 任意要使用C来写的方法。
例
static native void NDKMothed(Object obj);
3、编译次程序 会生成 所写程序的 class文件 假设为 NDK.class
4、cmd进入次程序的 bin目录文件下使用 javah -ndk ndk
5、在安装的c的编译环境下回产生一个新的文件 com_cn_ndk.h文件
6、在 当前的项目下新建一个目录为jni 的文件目录
7、在jni文件目录下创建一个名字为android.mk 文件
写入
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TztNetDll //次文件为写好的c文件、实现
LOCAL_SRC_FILES :=tztNetDll.cpp //为实现的文件
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
8、将编译后的h文件放到jni目录下
9、cmd进到jni目录下 ndk-build 自动创建一个libs文件目录
C代码 提示
#include 引入包 \\ ""和<> 是为了区分 系统的.h文件和当前编译的
#define 宏
struct ss{
}s;
dll 是window 下的库
so 是linux 下的库
编译 java文件后在方法的里面会自动创建两个参数前两个
javap -p -s com.tzt.objYuan
"&d" int "&s" char
g++ 是编译 的意思