原文链接:https://blog.csdn.net/afei__/article/details/81271594
一、简介
在 Android Studio 2.2 以上的版本,推荐使用 CMake 来编译工程里的 C/C++ 代码(包括 JNI 部分)。
一般来言,我们只需要关注和编写 CMakeLists.txt 即可,至于 CMake 如何编译,以及使用的什么样的配置选项是不怎么关心的(会有一系列默认的配置)。不过,如果你需要更改或者定制化一些编译的选项,你就需要了解一下如果在 gradle 中配置这些信息了。
二、如何在 gradle 中使用 cmake 的变量
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
// 指定一些编译选项
cppFlags "-std=c++11 -frtti -fexceptions"
...
// 也可以使用下面这种语法向变量传递参数:
// arguments "-D变量名=参数".
arguments "-DANDROID_ARM_NEON=TRUE",
// 使用下面这种语法向变量传递多个参数(参数之间使用空格隔开):
// arguments "-D变量名=参数1 参数2"
"-DANDROID_CPP_FEATURES=rtti exceptions"
// 指定ABI
abiFilters "armeabi-v7a" , "arm64-v8a"
}
}
}
buildTypes {...}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
在 Module 级别的 build.gradle 文件中,使用类似上述 cmake 块中形式配置相关参数。
三、CMake 编译 NDK 所支持的变量配置
四、附表(C++ 库支持)
参考:https://developer.android.com/ndk/guides/cpp-support#system