什么是armeabi以及为什么他们使用它

当我探索开放源代码的时候,我会多次看到这个库(armeabi),并且为了定义它,我发现了所有的结果,并且没有定义它,我想知道这个armeabi是什么,以及为什么它们使用它在Android应用程序。

Android设备有CPU。 这些CPU中有许多是基于ARM架构的,有些则基于x86架构,还有一些基于MIPS等其他东西。

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

ABI – 应用程序二进制接口

EABI – embedded式应用程序二进制接口

所以ARMEABI是与您的Android设备的CPU架构相匹配的编译的二进制文件

例如

arm64-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

在这里输入图像说明

要使用Android Studio 2.3包含* .so二进制jniLibs,请将它们放在src/main/jniLibs文件夹中,并将以下configuration添加到* .gradle文件中:

 android { sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } } dependencies { compile fileTree(dir: 'jniLibs', include: ['*.so']) }