考虑以下:
>通常,开发人员会将minSdkVersion设置为16,因为它覆盖了99%以上的设备(1).
>但是,从2019年8月1日起,Android将要求所有应用程序都提供64位版本(2).
>此外,NDK API级别(用-D__ANDROID_API__设置)必须等于minSdkVersion(3).
>最后,在arm64-v8a上运行的Android设备不支持低于API级别21(4)的任何设备.
我已经尝试进行研究以弄清所有这些东西是如何工作的-直到现在我一直主要通过试图建立依赖关系以将我的C库移植到Android来破解自己的方式-请原谅如果我缺少明显的东西.但在我看来,上述表明从2019年8月1日开始,使用Android NDK构建的应用程序必须将最低API级别定位为21.这是否正确?
参考文献:
最佳答案
在研究过程中,我想找到了答案.如果这个错误,请随时添加更好的答案.
64位体系结构的最低API级别为21,这是由于Android simply did not support 64-bit before then所致.通过在构建脚本和/或makefile中使用条件,您可以将64位体系结构的API级别指定为21,但仍然较低对于32位则为16.这样一来,您将可以满足Google的要求,并仍然提供与以前一样的兼容性.这是我自己的脚本之一的片段:
case "${ABI}" in
armeabi-v7a | x86)
API_LEVEL=16
;;
arm64-v8a | x86_64)
API_LEVEL=21
;;
*)
echo >&2 "Invalid ABI ${ABI}"
exit 1
;;
esac