1.建立java文件在类里声明静态native方法和加载动态库
public class TestJni {
static
{
System.loadLibrary("testjni"); //库的名字和自己编写的c方法名相同
}
private native String hello();
}
2..h头文件
执行javac 命令生成class文件 将class文件考入到com.example.wsy.TestJni所在的目录 目的是要让class文件和java文件在一起编译
执行D:\WorkPlace\wsy\src>javah -classpath . -jni com.example.wsy.TestJni 将会在src文件夹中生成.h头文件
然后class文件可以删除了。。
在目录里建个jni文件夹考入.h头文件
3.c文件
.c文件是来实现.h文件里的接口的
#include <string.h>
#include <jni.h>
JNIEXPORT jstring JNICALL Java_com_example_wsy_TestJni_hello
(JNIEnv* env, jobject thiz){
return (*env)->NewStringUTF(env, "欢迎回来");
}
4.Android.mk文件
编写一个Android.mk文件在里面写入对应的参数:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestJni //so库名 可以随便定义但是引用的时候名字要对
LOCAL_SRC_FILES := TestJni.c //实现.h文件里面的接口 名字可以随便定义
include $(BUILD_SHARED_LIBRARY) //动态生成so文件
5.新建并配置一个新的Builder 生成so文件(要下载配置好Ndk环境)
1) 点击Project->Properties->Builders->New,新建立一个Builder。在弹出的对话框上面点击Program,点击OK;
2) 在弹出的对话框【Edit Configuration】中,配置选项卡【Main】:
Location中需要填入nkd-build.cmd的路径(NDK安装目录下):F:\android-ndk32-r10-windows-x86\android-ndk-r10\ndk-build.cmd
WorkingDiretcoty中需要填入本工程根目录:D:\WorkPlace\wsy
3) 在【EditConfiguration】中,配置选项卡【Refresh】:
勾选“Refresh resources upon completion”,
勾选“The entire workspace”,
勾选“Recuresively include sub-folders”。
4)在【EditConfiguration】中,配置选项卡【Build Options】:
勾选“After a “Clean””,
勾选“During manual builds”,
勾选“During auto builds”,
勾选“Specify working set of relevant resources”。
点击“Specify Resources…”勾选本工程的“jni“目录,Finish!
保存设置,点击OK。
public class TestJni {
static
{
System.loadLibrary("testjni"); //库的名字和自己编写的c方法名相同
}
private native String hello();
}
2..h头文件
执行javac 命令生成class文件 将class文件考入到com.example.wsy.TestJni所在的目录 目的是要让class文件和java文件在一起编译
执行D:\WorkPlace\wsy\src>javah -classpath . -jni com.example.wsy.TestJni 将会在src文件夹中生成.h头文件
然后class文件可以删除了。。
在目录里建个jni文件夹考入.h头文件
3.c文件
.c文件是来实现.h文件里的接口的
#include <string.h>
#include <jni.h>
JNIEXPORT jstring JNICALL Java_com_example_wsy_TestJni_hello
(JNIEnv* env, jobject thiz){
return (*env)->NewStringUTF(env, "欢迎回来");
}
4.Android.mk文件
编写一个Android.mk文件在里面写入对应的参数:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestJni //so库名 可以随便定义但是引用的时候名字要对
LOCAL_SRC_FILES := TestJni.c //实现.h文件里面的接口 名字可以随便定义
include $(BUILD_SHARED_LIBRARY) //动态生成so文件
5.新建并配置一个新的Builder 生成so文件(要下载配置好Ndk环境)
1) 点击Project->Properties->Builders->New,新建立一个Builder。在弹出的对话框上面点击Program,点击OK;
2) 在弹出的对话框【Edit Configuration】中,配置选项卡【Main】:
Location中需要填入nkd-build.cmd的路径(NDK安装目录下):F:\android-ndk32-r10-windows-x86\android-ndk-r10\ndk-build.cmd
WorkingDiretcoty中需要填入本工程根目录:D:\WorkPlace\wsy
3) 在【EditConfiguration】中,配置选项卡【Refresh】:
勾选“Refresh resources upon completion”,
勾选“The entire workspace”,
勾选“Recuresively include sub-folders”。
4)在【EditConfiguration】中,配置选项卡【Build Options】:
勾选“After a “Clean””,
勾选“During manual builds”,
勾选“During auto builds”,
勾选“Specify working set of relevant resources”。
点击“Specify Resources…”勾选本工程的“jni“目录,Finish!
保存设置,点击OK。