一、前言
JNI是Java Native Interface的缩写,它的主要作用是提供了若干API来实现Java和其他语言的通信(主要是C和C++)。
NDK是一系列工具的集合,它可以帮助开发者快速开发C(或者C++)的动态库(也称So库),并So库和Java应用一起打包。
JNI的使用就是需要将C(或者C++)代码编译成动态库供Java方法调用。
本文的内容是基于Android Studio的,其他使用命令行或者其他工具生成So库的方法请另行查找。
二、生成So库的步骤(方法一)
1、下载并配置NDK
首先在Android Studio中的Preferences找到Android SDK,并在SDK Tools这一栏中找到NDK,然后下载。如下图所示:
下载NDK
下载完NDK后,去local.properties文件中查看是否定义了ndk的存储路径,如下图所示:
定义ndk的存储路径
然后到gradle.properties文件中添加android.useDeprecateNdk=true,表示我们的应用需要使用NDK,如下图所示:
gradle.properties文件的配置
最后在app/build.gradle中配置ndk指定So库的名字为jni-test(如果不指定则生成的So库的默认名字为app),如下图所示:
build.gradle中指定So库的名字
2、编写Java调用类
如下图所示,我们定义了一个Java调用类。如下图所示:
Java调用类
Java调用类的说明:
1、静态代码块表明了该