使用CMake为Android构建时,CMAKE_SYSTEM_VERSION对应于最低api级别还是目标api级别?
答案 0 :(得分:1)
这是 version of the operating system for which CMake is to build 。 CMake将其设置为目标平台的 to the Android API level 。通常,我们设置 CMAKE_ANDROID_API
而不是直接操作 CMAKE_SYSTEM_VERSION
。
不幸的是,我们都与Android Studio一起使用的Android gradle插件使用的NDK toolchain file使用了完全不同的变量集,并将其设置为1
到“所有CMake自己的NDK处理代码” 。它希望使用 ANDROID_PLATFORM
。
无论如何,关于最低与目标API级别的问题非常重要。与Android SDK不同,NDK平台支持不向后兼容。使用Java,最佳做法是将目标API设置得尽可能高(并使用最新的可用SDK进行编译),并谨慎使用旧设备上可能不可用的API。
使用C ++,我们必须进行不同的工作。甚至最新的NDK r18的“平台”都可以追溯到android-16
,因此您也可以构建C ++代码以在该旧系统上运行。对于Android SDK,this corresponds to minSdkVersion
。