Android API和CPU架构

时间:2014-09-06 10:20:23

标签: android android-ndk

我是从命令行构建我的本机组件(而不是来自Android.mk)。我试图确定CPU架构与API级别的交集。我知道:

  • armeabi是ARMv5TE
  • armeabi-v7a是ARMv7-A

我正在尝试确定armeabi(ARMv5TE)和armeabi-v7a(ARMv7-A)所需的最低API级别。我需要最低API级别才能选择正确的sysroot。例如,我可以选择:

  • /opt/android-ndk-r9/platforms/android-19/arch-arm

  • /opt/android-ndk-r9/platforms/android-9/arch-arm

API级别与armeabiarmeabi-v7a的交叉点是什么?


根据NDK的docs/CPU-MIPS.htmlCPU-X86.html,MIPS和X86的最低API级别为9.但我无法为ARM找到类似的文档。


根据NDK的docs/NEON.html,ARMv7-a在NDK R3中首次亮相,该日期是2010年3月。这使得ARMv7-a从2010年5月开始围绕API 8。

1 个答案:

答案 0 :(得分:3)

自第一版发布以来,ARM一直受到支持(第3版是第一个支持本机NDK开发的版本)。由于armeabiarmeabi-v7a都链接到相同的库(在arch-arm子目录中),因此从版本3开始都支持它们。

要自己查找,请查看<NDK>/platforms/android-X,了解arch-arm(或类似地,arch-x86arch-mips)存在的X的最低值。

一般而言,在旧设备上运行的APK中使用较新的架构代码没有任何风险或伤害 - 旧设备只是不会看到未知的架构。唯一的风险是NDK构建失败,因为如果构建太旧的平台版本,则arch-X目录丢失,在这种情况下,您可以通过定位较新的平台版本立即自行修复它。