一、概念
Android NDK
Android Native Development Kit,简称NDK。
Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。 能够在 Android 应用中使用原生代码对于想执行以下一项或多项操作的开发者特别有用:
- 在平台之间移植其应用。
- 重复使用现有库,或者提供其自己的库供重复使用。
- 在某些情况下提高性能,特别是像游戏这种计算密集型应用。
JNI
Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C和C++)。
二、环境搭建
打开Android studio,File>>>Project Structure配置环境
配置环境1.png
配置环境2.png
如果没有下载android ndk,Android studio会提示下载,点击下载按钮下载即可。设置完毕查看local.properties文件会看到你的配置路径。
local.properties.png
NDK下载配置完成之后,需要在gradle.properties文件中加上一行:
android.useDeprecatedNdk=true
如图:
gradle.properties
接下来打开Android studio设置页面(快捷键:Ctrl + Alt + S),在Tools>>>External Tools下配置插件。
External Tools.png
image.png
javah -jni命令,是根据java文件生成.h头文件的,会自动根据java文件中的类名(包含包名)与方法名生成对应的C/C++里面的方法名。
参数配置及其含义:
- Program:
$JDKPath$\bin\javah.exe
,配置javah.exe的路径。 - Arguments:
-classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$
,这里$FileClass$
指的是要执行操作的类名(即我们操作的文件),$ModuleFileDir$/src/main/jni
表示生成的文件保存在这个module目录的src/main/jni目录下。 - Working directory:
$ModuleFileDir$\src\main\java
,module目录下的src\main\java目录(不是很理解)。
使用方式:选中java文件>>>右键>>>External Tools>>>javah-jni,将生成jni文件夹以及文件夹下的 包名.类名的.h头文件(名字过长,可以重命名)。如下图:
external tools使用.png
头文件.png
ndk -build命令,是根据C/C++文件生成so文件的。
ndk -build.png
使用方式:选中C/C++文件—>右键—>ExternalTools—>ndk-build,将在main文件夹下生成libs文件夹以及多个so文件,我们可以移动至jniLibs目录下去。
参考博客:https://blog.csdn.net/xiaoyu_93/article/details/52870395