1.下载安装ndk
http://developer.android.com/ndk/downloads/index.html
下载linux64位,赋予执行权限sudo chmoe 755 android-ndk-r10e-x86_64.bin
解压./android-ndk-r10e-x86_64.bin
配置环境变量:
vim ~/.bashrc
添加如下
#ndk
export NDK_HOME=/home/zhyang/Documents/android-ndk-r10e/
export PATH=$PATH:$NDK_HOME
更新,source ~/.bashrc
输入ndk-build看下,没有command not found就行
2.打开eclipse新建android工程TestJNI,添加以下代码
3.编译一下,或者直接运行生成.class文件
4.cd到工程根目录下,执行下面这句生成头文件
-d指定头文件的输出目录 -classpath指定.class类文件路径,com那串指定类名
cd 到jni下可以看到生成了.h文件
网上的很多-classpath指定的路径是bin/classes会报错,找不到com.android.testjni.MainActivity这个类,换成src就没问题了
5.根据上面的头文件编写对应的.c文件
vim testjni.c
6.编写Android.mk文件
7.cd 到工程根目录ndk-build
就会在libs/armeabi下生成libtestjni.so
8.接下来调用试试
成功
额外的福利:
有个问题,岂不是我们每次修改.c文件都得重新手动生成.so文件,这个方法可以让eclipse帮我们完成
右键TestJNI工程,properties,builder,new,program,设置如下
切换到refresh标签,再设置如下
最后一个build options标签,也如下:
再点击上图中的specfy resource按钮勾选上你的工程
finish ok ok
在控制台可以看到
完成!