一、NDK下载
步骤:点击SDK Manger -> SDK Tools -> 勾选CMake和NDK -> 点击Apply->OK,NDK下载完成
NDK:这套工具集允许为 Android 使用 C 和 C++ 代码。
CMake:一款外部构建工具,可与 Gradle 搭配使用来构建原生库。如果只计划使用 ndk-build,可不勾选。
二、NDK配置
我们先创建一个项目,里面只有一个MainActivity
然后右键项目 -> Open Module Settings -> Android NDK Location ->选中下载的ndk目录(默认位于sdk下)-> OK -> 等待编译
编译完成,会发现根目录local.properties里面多了NDK路径如下图:
接着在根目录gradle.properties下面加上如下配置:
android.useDeprecatedNdk=true
此时编译报了如下错:
是由于我使用的studio版本是3.2.1
此处须注意:
#gradle:3.0.1 studio3.0 之前用 android.useDeprecatedNdk=true
#gradle:3.0.1 studio3.0 之后用 android.deprecatedNdkCompileLease=1556013764657
所以,根据错误提示,将gradle.properties改为如下:
报错解决。
继续我们在module下面的build.gradle下面加上ndk节点如下图:
ndk {
moduleName "JNISample" //编译出so的名字
}
三、NDK开发
三部曲:
(一)新建Java文件编写相关代码
创建一个JNIUtil的类,编写一个native方法如下图:
(二).通过命令工具Terminal生成.h文件
打开Android studio 最下面的命令工具Terminal(也可通过cmd直接打开命令行)
1.进入java目录下,默认为项目根目录,执行以下命令
javah sz.com.myjni.JNIUtil
2.执行成功,会在java目录下生成.h头文件,如下图:
(三)新建.c 或者.cpp文件编写相关代码
1、main下面新建jni文件夹
2、将.h文件拷贝到生成的jni目录下
生成的.h内容如下:
3、把.h类纯复制一份,把后缀名改成.cpp。里面实现它的方法,我们在方法里面打印"JNI Test!"
最后,在MainActivity中执行:
运行程序:
并且成功编译出了.so文件,如下图:
大功告成!