美文网首页
Android中ABI和CPU的关系

Android中ABI和CPU的关系

作者: 土豆吞噬者 | 来源:发表于2019-08-02 11:43 被阅读0次

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

ABI包含的信息

  • 机器代码应使用的 CPU 指令集。
  • 运行时内存存储和加载的字节顺序。
  • 可执行二进制文件(例如程序和共享库)的格式,以及它们支持的内容类型。
  • 在代码与系统之间传递数据的各种规范。这些规范包括对齐限制,以及系统调用函数时如何使用堆栈和寄存器。
  • 运行时可用于机器代码的函数符号列表 - 通常来自非常具体的库集。

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

相关文章

网友评论

      本文标题:Android中ABI和CPU的关系

      本文链接:https://www.haomeiwen.com/subject/wftldctx.html