Android中ABI和CPU的关系

2019-08-02  本文已影响0人  土豆吞噬者

不同的Android手机使用不同的CPU,而不同的 CPU 支持不同的指令集,CPU 与指令集的每种组合都有专属的应用二进制接口,即 ABI。

ABI包含的信息

NDK支持的ABI

NDK以前支持MIPS,MIPS64,armeabi,但在NDK r17 移除了对这些ABI的支持,其中,MIPS,MIPS64使用的很少可忽略。

armeabi不支持硬件辅助的浮点运算,所有浮点运算都使用编译器的 libgcc.a 静态库中的软件辅助函数。

ABI 支持的指令集
armeabi ARMV5TE 和更高版本,Thumb-1
armeabi-v7a armeabi,Thumb-2,VFPv3-D16
arm64-v8a AArch64
x86 x86 (IA-32),MMX ,SSE/2/3,SSSE3
x86_64 x86-64,MMX

ABI和CPU的关系

大多数CPU都支持多种ABI,但是为了获得最佳性能,最好使用CPU的主要ABI。

CPU 主要ABI 支持的ABI
ARMv5 armeabi armeabi
ARMv7 armeabi-v7a armeabi ,armeabi-v7a
ARMv8 arm64-v8a armeabi ,armeabi-v7a,arm64-v8a
x86 x86 armeabi ,armeabi-v7a ,x86
x86_64 x86_64 armeabi ,x86 ,x86_64
上一篇 下一篇

猜你喜欢

热点阅读