什么是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']) }