在这里大体讲一下jni的基础环境搭建,防止自己忘记到时候又要找。
前提 安装好android的集成开发环境,我这里安装的是android studio 1.5.1,下载android SDK和android NDK,具体版本网上都有,就不加链接了。
.Java 新建一个java文件,代码如下
public class jniTest{//这个类名随意
static{
System.loadLibrary("jniTest");//这个是作为.so文件的文件名
}
public native String helloworld();
}
local.properties
在最下面增加一行
ndk.dir=你NDK所在的文件夹
app.build.gradle
在文件中在对应位置中增加如下代码
buildTypes{
release{
...
ndk{
moduleName "jniTest"//生成.so的名字
abiFilters "armeabi","armeabi-v7a","x86"
}
}
debug{
ndk{
moduleName "jniTest"
abiFilters "armeabi","armeabi-v7a","x86"
}
}
编译
由于我使用的是android studio 1.5.1 所以我是点开左下角的Terminal进入到\app\intermediates\classes\debug下编译如下
javah -jni package名.jniTest
会在该路径下生成一个.h文件,在java下新建一个名为jni的文件夹,把.h文件拷贝到该文件夹下,并在该文件夹下新建一个c/c++文件,用于编写自己需
要的c/c++程序(PS:如果jni下除了.h文件就只有一个c/c++文件,必须新建一个空的c/c++文件,不然会报错)
run 在Build下进行make project ,成功的话会多出ndk文件夹,在java下就可以使用自己的c/c++函数了。