Android的新64位要求是否意味着具有本地代码的应用程序的新最低API级别为21?

考虑以下:

>通常,开发人员会将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.这是否正确?

参考文献:

> 1
> 2
> 3
> 4

最佳答案
在研究过程中,我想找到了答案.如果这个错误,请随时添加更好的答案.

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

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...