我试图更好地理解在使用 ndk-build 时如何选择 api 级别。
我知道我可以在 Application.mk 中显式设置 APP_PLATFORM
,否则 ndk-build 将以 android:minSdkVersion list 中指示的 api 为目标
,但如果我的应用程序的 list 同时包含 android:minSdkVersion
和 android:targetSdkVersion
,并且高于 minSdkVersion 怎么办?
ndk-build 会以 targetSdkVersion 为目标吗?我该如何检查?
如果它针对更高的 api 级别,我想我将能够使用仅适用于该级别的 native api 进行构建,但是如果我在具有较低 api 级别的设备上运行该应用程序,它应该会悲惨地失败,所以在在这种情况下,我应该实现某种 API 级别检查,对吗?
最佳答案
使用 __ANDROID_API__
在 $NDK/platforms/android-<level>/<abi>/usr/include/android/api-level.h
中定义
#if __ANDROID_API__ >= 21
// building with Android NDK Native API level 21 or higher
posix_fadvise64(fd, ...);
#else
// building with Android NDK Native API level 20 or lower
syscall(__NR_arm_fadvise64_64, fd, ...);
#endif
关于android - 如何知道我正在为使用 ndk-build 构建哪个 API 级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660575/