首先需要安装Cygwin。也有人说从NDK的R8C版本开始就不需要Cygwin了,其实也不全对,新版本的NDK集成了Cygwin的部分功能,但是很不全面,所以还是要安装Cygwin才行。安装方法略过不谈,另有博客(《android开发之绝对安全(一) 安装Cygwin》)详述。
然后需要配置下载和NDK。
下载NDK可以到官网进行下载,目前最新版本是R9C,下载地址是:
http://developer.android.com/tools/sdk/ndk/index.html
大家可以自行选择适合自己电脑的版本:
下载完成后解压,并拷贝到合适的目录:目录名字中不能有空格和汉字,包括工作空间也要没有空格和汉字,以便Cygwin使用。
然后打开eclipse进行配置。打开[Window]--[Prefrences]菜单,选择[Android]--[NDK],然后设置相应的NDK目录,并点击应用:
到此配置完毕。
在eclipse中导入NDK目录下的samples文件夹中的hello-jni项目进行测试。如果无法导入,请将.classpath和.project文件拷贝到这个项目目录下(这两个文件的下载地址:http://download.csdn.net/detail/iloveyoueveryday/6906253)。注意,用文本工具打开.project文件的话,你会发现这是一个XML文件,一定要保持name标签中的内容与项目名称一致。
直接运行肯定会报错,需要使用Cygwin编译一下才能运行。
打开Cygwin,输入项目目录,然后运行ndk-build即可:
编译完成后,在eclipse中刷新已经导入的hello-jni项目,既可以运行。
注意一点,编译生成的文件夹有以下几个:
一般保留第一个就行了,其他的可以删除。但是考虑到以后android手机CPU的多样化,全都保留也是可以的。
打开项目中的hello-jni.c文件,你会发现调用的这个本地方法使用了jni.h库,有这样两个参数:
( JNIEnv* env, jobject thiz )
其中JNIEnv表示java环境,jobject表示调用这个方法的类。JNIEnv类所能使用的方法另有博客(《android开发之绝对安全(三) JNI方法集合》)详述,可供参考。