armeabi、mips、x86、armeabi-v7a、armeabiarmeabi-v7a等的初步理解

armeabi、mips、x86、 armeabi-v7a等如何理解?


       ABI:指应用基于哪种指令集来进行编译,ABI总共有四种,分别是armeabi、armeabi-v7a、mips、x86,它们都是表示cpu的类型。


(1)armeabi:
默认选项,
支持基于 ARM* v5TE 的设备
支持软浮点运算(不支持硬件辅助的浮点计算)
支持所有 ARM* 设备


(2)armeabi-v7a:
支持基于 ARM* v7 的设备
支持硬件 FPU 指令
支持硬件浮点运算


(3)x86:
支持基于硬件的浮点运算的 IA-32 指令集

(4)mips:
支持二进制接口
既然armeabi通用,为什么要使用其它指令集呢?
答:虽然armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力。armeabi就是针对普通的或旧的armcpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu。x86、mips同理。

扩展知识:
        EABI(嵌入式应用二进制接口)Embedded application binary interface, 即嵌入式应用二进制接口,是描述可连接目标代码,库目标代码,可执行文件影像,如何连接,执行和调试,以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础规范,也是研究它们工作原理的基础,可惜arm的EABI迄今为止没有完全订好。作为EABI的组成部分有过程调用规范,可执行文件格式规范,c/c++ ABI规范和调试格式规范。EABI ,说的是这样的一种新的系统调用方式。
        NEON一种由 ARM 开发的 64/128 位混合 SIMD 体系结构,可以提升多媒体和信号处理应用程序的性能。 NEON 作为处理器的一部分来实现,但是它拥有自己的执行管道,以及有别于 ARM 的寄存器组。 关键功能包括对齐和未对齐数据访问,支持整型定点和单精度浮点数据类型、与 ARM 核心的紧密耦合,以及具有多个视图的大型寄存器文件。
        SSE向英特尔架构(IA)的SIMD 流指令扩展(英特尔推出的类似 NEON 的工具)。

你可能感兴趣的:(Android)