注:
1、环境配置请参考
http://blog.csdn.net/zhanglongit/article/details/8489538
/ 这里不再累赘;
2、
NDK版本为android-ndk-r7-windows,此版本已经集成cygwin功能,所以不必再另外安装
cygwin;
3、CDT版本为
cdt-master-8.1.2。
第一步:新建项目
进入Eclipse,新建一个Android Project,取名TestJni。后面新建项目的步骤不再累赘。
第二步:定义接口
目前整个项目只有一个类MainActivity,在MainActivity里面定义JNI接口,添加如下代码:
public native String stringFromJNI();
public native String unimplementedStringFromJNI();
static {
System.loadLibrary("test-jni");
}
第三步:实现方法
在项目中添加文件夹jni,并添加两个文件:
文件一:Android.mk 其中代码如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test-jni
LOCAL_SRC_FILES := test-jni.c
include $(BUILD_SHARED_LIBRARY)
文件二:test-jni.c 其中代码如下:
#include <string.h>
#include <jni.h>
jstring Java_com_example_testjni_MainActivity_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
第四步,配置项目编译器
通过配置,使用dnk-build.cmd来编译C文件,生成so文件。配置步骤如下:
1、
右键点击工程目录依次Properties->Builders->New 选中Program 并确定;
2、Name自己指定,Location通过Browse File System 指定,Working Directory通过Browse Workspace指定;(Location选到dnk-build.cmd,Working Directory选当前的项目)
3、Refresh项若不是针对整个工作空间选择第三个即可;
4、Build Options 项所选如图;
5、Specify Resources
选中jni文件夹即可;
6、依次Finish->OK->OK。
第五步:运行项目
在MainActivity类中直接使用stringFromJNI()函数则可调用C中实现的方法。
最后运行项目则可。
参考:
http://blog.csdn.net/zhanglongit/article/details/8489538