Android开发中使用NDK在Eclipse中实现JNI技术

来源:互联网 发布:示剑网络怎么样 编辑:程序博客网 时间:2024/06/07 02:35
注:
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-jniLOCAL_SRC_FILES := test-jni.cinclude $(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

0 0