armeabi
- armeabi是一个非常老的基于ARM的架构。从Android 4.4开始,CDD(compatibility definition)严格要求ARMv7读取CDD文档。 CDD是Google向设备制造商提供的每个Android版本的规范,它包含了发布具有Google认证的Android设备的最低要求。 大多数设备制造商在Android 4.4之前转移到armV7,因此我们现在可以安全地忽略这个armeabi架构。
rmeabi-V7A
-
这是目前最常用的架构。这是所有应用程序必须支持的ABI。
-
armeabi-v7a - 32位 - ARM Cortex-A5,ARM Cortex-A7,ARM Cortex-A8,ARM Cortex-A9,ARM Cortex-A12,ARM Cortex-A15,ARM Cortex-A17
arm64-V8A
-
这是下一代64位ARM架构。所有旗舰手机都采用这种架构。从Nexus 5x开始,Nexus 6P,Google Pixel都使用64位ARM芯片组。
-
arm64-v8a - 64位 - ARM Cortex-A35,ARM Cortex-A53,ARM Cortex-A57,ARM Cortex-A72,ARM Cortex-A73
-
支持此ABI是可选的,因为设备可以使用本地库的armeabi-v7a版本。在64位处理器上使用32位版本的库会有轻微的性能损失,但考虑到我们可以在上面的示例中节省大约1MB的APK大小,这应该是可以避免使用的。
-
如果您使用的是本地库,这是您项目的核心部分,并且您希望在旗舰手机上为用户提供最佳体验,那么您可以包含此ABI,但对于大多数应用程序,这可以删除,直到我们看到大多数设备采用64位处理器。
X86
基于英特尔处理器的设备,华硕ZenFone2是众多联想手机中最知名的设备,应用程序必须支持这一点。
X86-64
市场上没有配备64位英特尔处理器的安卓设备,即使设备很少,它也可以很好地使用32位版本的本机库,因此捆绑时可以避免使用X86-64库。
mips和mips64
市场上没有MIPS架构的Android设备。 有一个设备应该在2016年推出但我没有找到除本文第一个MIPS设备之外的任何信息,并且在Reddit上有一个关于MIPS的线程。
参考
Controlling APK Size When Using Native Libraries
https://android.jlelse.eu/controlling-apk-size-when-using-native-libraries-45c6c0e5b70a