一:前期准备
下载android NDK 地址:http://dl.google.com/android/ndk/android-ndk-r5b-windows.zip
下载Cygwin 地址:http://www.cygwin.com 必须是Cygwin 1.7或是更高版本,Cygwin 1.5不支持
二:配置环境变量
1. 安装完Cygwin后,将下载的android NDK解压到Cygwin的安装目录,即和Cygwin里的bin目录同级。
2. 到Cygwin目录下面找到home/当前用户/.bash_profile文件,打开并在文件末尾添加如下:
NDK=/android-ndk-r5b
export NDK
3. 重新启动Cygwin
三:编译jni文件
cd $NDK/samples/Hello-jni
$NDK/ndk-build
就会编译samples/hello-jni/jni/hello-jni.c为libhello-jni.so文件,也就是会生成一个samples/hello-jni/libs目录里面有编译好的文件,
eclipse环境开发JNI
一:下载eclipse,配置环境
地址http://www.eclipse.org我下载了两个eclipse分别是 Eclipse IDE for Java Developers 和Eclipse IDE for C/C++ Developers然后将Eclipse IDE for C/C++ Developers里的插件全部copy到Eclipse IDE for Java Developers 插件中(其实我想要的是里面的cdt插件,找不到。。找到了安装不上,也不想折腾)。安装google的ADT插件,我们用整合好的eclipse开发。
二:导入工程,配置对应的Builders
将下载的android-ndk-r5b中samples里的Hello-jni导入到eclipse工程里,给这个工程添加一个Builders右击Hello-jni选择
Properties->Builders->New选择Program,添加信息如下:
这里也就是执行一个bash命令 bash -c "cd /workpalce/hello-jni && $NDK/ndk-build" 和前面原理一样,进入到要编译的工程目录,执行ndk-build脚本,-c参数说明后面要执行的命令在一个字符串里。这个字符串里有两个命令:先进入工程目录,执行脚本
这里设置什么时候要执行前面的命令,也就是什么时候编译jni文件为.so文件。这里有设置有clean后编译,人工编译等。用户可以自己选择。
到这里一个简单的android的工程可以使用了。点eclipse里Project->Clean就可以看到控制台上输出如下信息:
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
表示已经编译完成c文件。这样就可以通过jni接口访问本地生成的文件接口了。