首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android新的64位要求是否意味着新的最低API级别为21,对于带有本机代码的应用程序?

Android新的64位要求是否意味着新的最低API级别为21,对于带有本机代码的应用程序?
EN

Stack Overflow用户
提问于 2019-02-04 15:47:07
回答 2查看 2.9K关注 0票数 7

请考虑以下几点:

  • 通常,开发人员将minSdkVersion设置为16,因为这涵盖了99%以上的设备(1)。
  • 然而,在2019年8月1日,Android将要求所有应用程序提供64位版本(2)。
  • 此外,NDK级别(用-D__ANDROID_API__设置)必须等于minSdkVersion (3)。
  • 最后,运行在arm64-v8a上的Android设备不支持任何低于API级别21 (4)的设备。

我一直在做研究,想弄清楚这些东西是如何工作的--到目前为止,我大部分时间都在尝试获取依赖关系来构建,以便将我的C++库移植到安卓系统--所以如果我遗漏了一些非常明显的东西,请原谅我。但在我看来,以上所述表明,从2019年8月1日起,使用Android构建的应用程序必须达到API 21级的最低水平。这是正确的吗?

参考文献:

EN

回答 2

Stack Overflow用户

发布于 2019-02-04 15:47:07

在我的研究过程中,我想我找到了答案。如果这个答案是错的,请随意添加一个更好的答案。

64位体系结构的最低API级别为21,这是因为在此之前,Android根本不支持64位。.通过在构建脚本和/或makefile中使用条件,您可以将64位体系结构的API级别指定为21,对于32位架构,API级别仍然低至16。通过这种方式,您将满足谷歌的要求,并仍然提供与以前一样多的兼容性。下面是我自己的脚本中的一个片段:

代码语言:javascript
复制
case "${ABI}" in
  armeabi-v7a | x86)
    API_LEVEL=16
    ;;
  arm64-v8a | x86_64)
    API_LEVEL=21
    ;;
  *)
    echo >&2 "Invalid ABI ${ABI}"
    exit 1
    ;;
esac
票数 5
EN

Stack Overflow用户

发布于 2019-02-06 16:33:42

只需编译并包含您在apk中拥有的相同32位本机库的64位版本。让min版本像以前一样。

如果应用程序在API < 21上运行,它将不会看到64位的原生库,它将像以前一样与32位版本一起工作。在API 21+上,设备可能使用64位库(取决于CPU )。

Cmake将自动选择正确的ndk库,以便在minSdkVersion中与build.gradle链接,因此您不需要过多地关注构建过程的设置。

更多信息:https://developer.android.com/ndk/guides/cmake

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54519636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档