Android Studio中实现NDK开发较之前Eclipse+Cygwin,方便了很多。
本文以最简单的从C程序中获取字符串,并显示到MainActivity的TextView上为例进行NDK开发的基本流程。
准备
NDK开发环境
在安装好的Android Studio上,在SDK Manager中进行NDK的下载安装;或直接去https://developer.android.com/ndk/downloads/index.html上下载对应的安装包,并解压到sdk的ndk-bundle下。
设置相关的环境变量,建议将android-v7, v4等工具也添加到环境变量中。
实现步骤
创建Project
在app下创建一个名为jni的目录(依次点击:new folder jni-folder)
在gradle_properties文件中加入:android.useDeprecatedNdk=true
创建一个类NdkUtil,在其中声明native方法
public class NdkUitls {
public native String getCLanguageString();
}
在terminal中使用命令行,在app\build\intermediates\classes\debug下,使用javah -jni lab.example.NdkUtil[根据实际情况而定]。在该目录下回产生一个.h文件,打开该文件后,复制其中的内容。
在app目录下新建一个jni目录(new folder jni-folder),并创建一个C文件,粘贴.h中的内容。并作相应的修改。
在app module目录下的build.gradle中,找到gradle文件的defaultConfig,添加ndk配置信息
ndk{
moduleName "YourJniLibName"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
在代码NdkUtil中加载给类库YourniLibName:
static{
System.loadLibrary("YourJniLibName");
}
编译,运行: