Android中ABI和CPU的关系

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

ABI包含的信息

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

NDK支持的ABI

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

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

ABI支持的指令集
armeabiARMV5TE 和更高版本,Thumb-1
armeabi-v7aarmeabi,Thumb-2,VFPv3-D16
arm64-v8aAArch64
x86x86 (IA-32),MMX ,SSE/2/3,SSSE3
x86_64x86-64,MMX

ABI和CPU的关系

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

CPU主要ABI支持的ABI
ARMv5armeabiarmeabi
ARMv7armeabi-v7aarmeabi ,armeabi-v7a
ARMv8arm64-v8aarmeabi ,armeabi-v7a,arm64-v8a
x86x86armeabi ,armeabi-v7a ,x86
x86_64x86_64armeabi ,x86 ,x86_64
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值