什么是阿米阿比,他们为什么要用它?

当我探索开放源码时,我经常看到这个库(armeabi)。

我在网上搜索对它的解释,但是我找到的所有结果都是关于它的讨论,而不是对它的定义。

这个 armeabi 是什么? 他们为什么要在 Android 应用程序中使用它?

65461 次浏览

Android 设备有 CPU。其中许多 CPU 基于 ARM 架构,有些基于 x86,还有一些基于 MIPS 之类的东西。

一些 Android 应用程序使用原生开发工具包(NDK)创建 C/C + + 代码链接到他们的应用程序。需要为特定的 CPU 架构编译 C/C + + 代码。NDK 将为每个体系结构编译的 C/C + + 代码的版本放入一个特定于体系结构的目录中。其中一个目录是 armeabi/,用于通用的 ARM CPU。还有 armeabi-v7/(适用于与 ARM v7兼容的 CPU)、 x86/(适用于 x86 CPU)等。

ABI -应用二进制接口

EABI -嵌入式应用二进制接口

所以 ARMEABI 是 编译的二进制文件,与你的机器人设备的 CPU 架构相匹配。

例如:。

ARM 64-v8a (Nexus 5x)-64位-ARM Cortex-A35,ARM Cortex-A53,ARM Cortex-A57,ARM Cortex-A72,ARM Cortex-A73

Armeabi-v7a -32位-ARM Cortex-A5,ARM Cortex-A7,ARM Cortex-A8,ARM Cortex-A9,ARM Cortex-A12,ARM Cortex-A15,ARM Cortex-A17

enter image description here

要使用 Android Studio 2.3包含 * 二进制 JniLibs,请将它们放在 src/main/jniLibs文件夹中,并将以下配置添加到 * 。档案:

android {
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
}


dependencies {
compile fileTree(dir: 'jniLibs', include: ['*.so'])
}

我最近看到一个相当不错的 文章与不同的 CPU 相关,并建议在支持它们的同时保持 APK 大小。报告最后提供了以下信息:

  • Armeabi
  • Armeabi-v7a
  • Arm64-v8a
  • X86
  • X86-64
  • 米普斯
  • MIPS64