下载NDK工具
从官网下载最新的ndk工具--http://developer.android.com/intl/zh-cn/tools/sdk/ndk/index.html,或者找下别人下载的。双击提取内容。
配置path,环境变量
这里需要把提取的内容,配置到path环境变量里面。主要是有ndk-build,不然,每次都需要切换到这个目录来执行命令。
配置Eclipse
配置Eclipse,window-preferences-android-NDK,把ndk-build路径配置到这里。
简单演示:
1、新建项目--在MainActivity里创建一个native的本地方法。例如,public native int add(int a,int b);
2、项目--右键--android tool---add native support --so文件的名字---finish
3、等finish完成就到了c/c++的模式下,jni文件夹自动生成了。因为是用c做演示,所以.cpp后缀要改成.c的后缀。同样,android.mk里面的指向也得改成.c
4、然后,在.c文件里去添加库和实现java的本地方法。添加库 #include <stdio.h> #include <stdlib.h> ,本地方法:Java_完整的包名_类名_方法名
5、数据类型的对照在jni.h的文件里有。(Tips:自己写方法名有时候容易出错,这里可以使用 javah -jni 完整的类名,jdk1.6在项目bin下,jdk1.7在项目src下)
6、把.h文件拖到jni目录下,把.h里面的方法声明copy到.c里就可以了(不容易出错)。这时候就不是#include<jni.h> 而是 #include ".h问价的完整名"。(这时候会有报错)
7、接着来配置,项目右键---Properties--C/C++ General--paths and Symbols--add(选择ndk下面的platforms--任意一个版本的arm-include-usr)
8、配置完成以后,项目就没有错误了。这么做的好处是,当引用jni里的方法是,会有提示(自己写的时候没有哦~)。
或者(**env). 都可以。自己写的时候是没有的。写好方法了,点击上面工具栏的锤子图标编译,或者等运行的时候,自动编译也可以。
9、最后,这种的好处还有,每次运行的时候,都会重新编译so文件。不用手动时候每次修改,都需要 ndk-build clean,ndk-build 来重新生成了。
10、jni目录下还有一个文件是Application.mk 说明哪种类型的,默认是arm。内容
APP_ABI := armeabi armeabi-v7a x86 mips arm64-v8a x86_64 mips64
可以是一个或者多个,如果添加所有的可以用all。
查看NDK提供的示例
在file--new project---android---android project from existion code --选择ndk(sample里面任意一个就可以。然后,命令行切换到该项目目录下ndk-build,运行就可以了)。
很久没有使用了,自己留个印象。。。