Android JNI开发
1 创建项目
-
”file“——>”new Project“——>选择”Basic Activity“——>填好名称、项目位置,语言就OK了。
-
gradle.properties文件末尾加上“android.enableJetifier=true”。
-
文件local.properties末尾添加”sdk.dir=${sdkPath}”和”ndk.dir=${ndkPath}”(sdk和ndk路径)
2 jni的使用
-
在需要的类中添加native函数变量。
-
app目录下的build/gradle文件中“defaultConfig”下添加(具体见下图):
ndk {
moduleName "MyAudio"(模块名,可自行更改)
}
在要jni操作的类中添加导入模块和要实现的函数:
static{
System.loadLibrary("MyAudio");
}
3. 点击Android Studio下面的终端,切换目录到“/ProjectName/app/src/main/java”,执行“javah -jni com.example.myaudio.MainActivity”(jni类),生成jni头文件。
4. 在APP目录下可以创建JNI文件夹,然后在jni文件夹中添加.mk文件和功能文件,同时把生成的jni头文件转移过来。
图中Application.mk文件调用C++库,里面只有一行代码:“APP_STL := c++_static”
需要注意的是mk文件的构造:
到这个时候就完工了,直接进行编译就可以了(确认需要的库已导入)
网上有很多jni开发教程,但是没有一个能够实现(不够详细,总是漏掉细节)。创建了10+个项目,,最终成功了,详细记录下来,希望对你有帮助。