armeabi armeabi-v7a mips x86 理解

简介

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

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

armeabi

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

armeabi-v7a

支持基于 ARM* v7 的设备
支持硬件 FPU 指令
支持硬件浮点运算

x86

支持基于硬件的浮点运算的 IA-32 指令集

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 的工具)。

时间: 2024-10-26 18:49:48

armeabi armeabi-v7a mips x86 理解的相关文章

“常言的x86”理解

基于32位cpu开发的操作系统就叫32位操作系统,因为目前x86架构在32位cpu的知名度,32位操作系统也通常被称为x86系统,准确的说,是"基于X86的操作系统"X86不是我们所说的操作系统,而是指令集,是一种架构,用在32位cpu开发 X86操作系统  32位    intel开发的32位指令集 X64操作系统  64位    x86_64 intel推出的64位扩展指令集(亦叫Intel 64.x86-64.x64) win7 X86就是win7 32位系统win7 X64就是

Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

Android 设备的CPU类型(通常称为”ABIs”) armeabiv-v7a: 第7代及以上的 ARM 处理器.2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代.64位ARM处理器,很少设备,三星 Galaxy S6是其中之一. armeabi: 第5代.第6代的ARM处理器,早期的手机用的比较多. x86: 平板.模拟器用得比较多. x86_64: 64位的平板. 问题描述 今天测试人员测试集成版本时除了一个bug:关于华为 Mate 8手机A

【转载】Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

转自:[欧阳鹏]http://blog.csdn.net/ouyang_peng Android 设备的CPU类型(通常称为"ABIs") armeabiv-v7a: 第7代及以上的 ARM 处理器.2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代.64位ARM处理器,很少设备,三星 Galaxy S6是其中之一. armeabi: 第5代.第6代的ARM处理器,早期的手机用的比较多. x86: 平板.模拟器用得比较多. x86_64: 64

我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

Android 设备的CPU类型通常称为ABIs 问题描述 解决方法 1解决之前的截图 2解决后的截图 3解决方法 为什么你需要重点关注so文件 App中可能出错的地方 其他地方也可能出错 使用android-21平台版本编译的so文件运行在android-15的设备上 混合使用不同C运行时编译的so文件 没有为每个支持的CPU架构提供对应的so文件 将so文件放在错误的地方 只提供armeabi架构的so文件而忽略其他ABIs的 更多参考 Android 设备的CPU类型(通常称为"ABIs&

armeabi和armeabi-v7a(转)

在ANE中如果SDK调用了so库,则需要把so库放到ANE下Android-ARM/lib/armeabi (调试模式)或者 armeabi-v7a(发行模式)下. 可以贴个ADT代码说明问题: //m_configType.equals("apk") 是否是发行模式//(hasCaptiveRuntime() 是否带运行时 if ((m_configType.equals("apk")) || (hasCaptiveRuntime())) { destApkDir

【转】armeabi和armeabi-v7a

原文网址:http://blog.csdn.net/dxpqxb/article/details/7721156 在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个.那armeabi-v7a 与 armeabi有什么区别,都是什么意思呢? armeabi和armeabi-v7a是表示cpu的类型,我们知道一般的手机或平板都是用arm的cpu(mips

armeabi与armeabi-v7a

1.armeabi armeabi是指的该so库用于Arm的通用CPU. 2.armeabi-v7a v7a的CPU支持硬件浮点运算. 3.共同点 armeabi和armeabi-v7a是表示cpu的类型. 4.不同点 因此armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力.armeabi就是针对普通的或旧的armcpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu. =========================================

jni中arm64-v8a,armeabi-v7a,armeabi文件夹的意义和用法

兼容和文件读取顺序 arm64-v8a是可以向下兼容的,其下有armeabi-v7a,armeabi armeabi-v7a向下兼容armeabi 兼容得不够智能: 对于一个cpu是arm64-v8a架构的手机,它运行app时,进入jnilibs去读取库文件时,先看有没有arm64-v8a文件夹: 如果没有该文件夹,去找armeabi-v7a文件夹,如果没有,再去找armeabi文件夹,如果连这个文件夹也没有,就抛出异常 如果有arm64-v8a文件夹,那么就去找特定名称的.so文件,注意:如果

【转】 armeabi与armeabi-v7a

1.armeabi armeabi是指的该so库用于Arm的通用CPU. 2.armeabi-v7a v7a的CPU支持硬件浮点运算. 3.共同点 armeabi和armeabi-v7a是表示cpu的类型. 4.不同点 因此armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力.armeabi就是针对普通的或旧的armcpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu.