1.什么是JNI
Java Native Interface JNI是java和C/C++互相调用的一套规范。
2.什么是NDK
Native Development Kit 本地开发工具包。NDK是基于JNI一套工具库。
3.为什么使用NDK
3.1 性能/效率高
3.2 安全(反编译困难)
3.3 便于移植
3.4 C/C++一些优秀开源库可以直接供java使用
4.NDK配置
4.1 下载CMake,LLDB,NDK(需要翻墙,梯子自备)
CMake、LLDB、NDK下载4.2 配置SDK,JDK,NDK路径,File->Project Structure->SDK Location 如下图
SDK、JDK、NDK配置路径4.3 新建工程,步骤和普通工程一样,不一样的地方下图会标明
勾选include C++ support
勾选include C++ support勾选Exceptions Support(-fexceptions)/支持异常
勾选Runtime Type Information Support(-frtti)/支持运行时类型信息(多态类型转换)
勾选Exceptions Support,勾选Runtime Type Information Support4.4 点击Finish。这样一个支持C/C++的工程就完成了。
4.5 jniLibs目录设置(可选)
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
//支持运行时类型信息和C++异常信息
cppFlags "-frtti -fexceptions"
}
}
}
...
//设置cmake文件路径
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
//设置.so、libs路径
sourceSets.main {
jniLibs.srcDirs = ['libs']
jni.srcDirs = []
}
}
网友评论