Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86

简介

在Android日常的开发过程中有的项目需要引入第三方的库,有时候大家可能会在libs文件夹下看到
mips、armeabi、armeabi-v7a和x86这四个文件夹。那么这三个文件夹下面的包是干什么用的?
这三个包下面存放的用C编译的本地库文件(各类『.so』文件)。

mips、armeabi、armeabi-v7a和x86都表示CPU的类型。一般的手机或平板都是用arm的cpu。不同的cpu的特性不一样,armeabi就是针对普通的或旧的
arm v5 cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。

mips、armeabi、armeabi-v7a和x86到底是什么

mips:MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked
piped stages),
其机制是尽量利用软件办法避免流水线中的数据相关问题。
armeabi:默认选项,将创建以基于ARM* v5TE 的设备为目标的库。 具有这种目标的浮点运算使用软件浮点运算。 使用此 ABI (二进制接口)创建的二进制代码将可以在所有 ARM* 设备上运行。所以armeabi通用性很强。但是速度慢

armeabi-v7a:创建支持基于
ARM* v7 的设备的库,并将使用硬件 FPU 指令。armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。

x86:支持基于硬件的浮点运算的
IA-32 指令集。x86是可以兼容armeabi平台运行的,无论是armeabi-v7a还是armeabi,同时带来的也是性能上的损耗,
另外需要指出的是,打包出的x86的so,总会比armeabi平台的体积更小。

总结

如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的; 如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。

扩展知识

NEON
通过干净方式构建的 NEON 技术可无缝用于其本身的独立管道和寄存器文件。

NEON 技术是 ARM Cortex™-A 系列处理器的 128 位 SIMD(单指令,多数据)架构扩展,旨在为消费性多媒体应用程序提供

灵活、强大的加速功能,从而显著改善用户体验。它具有 32 个寄存器,64 位宽(双倍视图为 16 个寄存器,128 位宽。)

NEON 指令可执行“打包的 SIMD”处理:

• 寄存器被视为同一数据类型的元素的矢量
• 数据类型可为:签名/未签名的 8 位、16 位、32 位、64 位单精度浮点数
• 指令在所有通道中执行同一操作

使用 NEON 技术的 ARM Cortex™-A 系列处理器,以及 ARM 的 Mali 多媒体硬件解决方案可用于多媒体应用,

范围从智能手机和移动计算设备到 HDTV。

NEON的优点

NEON 增强了用户体验

NEON 可增强许多多媒体用户体验:

观看任意格式的任意视频

编辑和强化捕获的视频 – 视频稳定性

锯齿消除渲染和合成

游戏处理

快速处理几百万像素的照片

语音识别

强大的多通道高保真音频处理

NEON 的特征和优点

NEON 支持用于 Internet 应用程序的范围广泛的多媒体编解码器:

许多软编解码器标准:MPEG-4、H.264、On2 VP6/7/8、Real、AVS

对于各种格式的正常大小的“Internet 流”解码来说,是理想的解决方案

不仅仅针对编解码器,还适用于 2D 和 3D 图形和其他矢量处理

提供现有工具、操作系统支持和生态体系支持

所需周期减少:

NEON 可使复杂视频编解码器的性能提升 60-150%

单个简单 DSP
算法可实现更大的性能提升(4 倍 -8 倍)

处理器可更快进入睡眠状态,从而在整体上节约了动态功耗

NEON 技术的大量元素能够提高性能并简化软件开发过程,如:

通过对齐和非对齐数据访问,可对 SIMD 操作进行有效的矢量化。

清晰的指令集架构,设计用于自动矢量化编译器和手动编码。

有效访问打包数组,如 ARGB 或 xyz 坐标

支持整数和浮点操作,以确保适合从编解码器、高性能计算到 3D 图形等广泛应用领域。

与 ARM 处理器紧密结合,提供单指令流和内存的统一视图,从而能够提供一个具有更简单工具流的开发平台目标。nbsp;

通过具有双 128 位/64 位视图的大型 NEON 寄存器文件,可有效处理数据并尽可能减少对内存的访问,从而增加了数据吞吐量。

如何使用 NEON

OpenMAX DL 库:

加速 AV 编解码器的建议方法

以源格式释放的库,在 ARM 网站上免费提供

支持以下格式:MPEG-4 简单配置文件、H.264 基准、JPEG、MP3、AAC

支持以下功能:FIR、IIR、FFT、点积、色彩空间转换、de-blocking.de-ringing、旋转、缩放、合成

矢量化编译器:

使用现有源代码自动搜索 NEON SIMD

受 ARM RealView 开发套件(v3.1 Pro 及更高版本)支持

在 2007q3 及更高版本中受 gcc 支持

C 内部函数:

C 函数调用接口至 NEON 操作

支持 NEON 支持的所有数据类型和操作

在 ARM RealView 开发套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持

汇编器:

针对确实需要在最低级别进行优化的用户

在 ARM 的 RealView 开发套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持

开源社区中的 NEON 支持

当前,在以下开源项目中支持 NEON:

Android – NEON 优化

使用 NEON,Skia 库 S32A_D565_Opaque 的速度加快了 5 倍

Ubuntu 09.04 支持 NEON:

关键共享库的 NEON 版本

Bluez – 官方
Linux 蓝牙协议堆栈

NEON SBC 音频编码器

Pixman(Cairo 2D 图形库的一部分)

合成/alpha 混合

X.Org、Mozilla Firefox、Fennec 和 Webkit 浏览器

例如,使用 NEON 后,fbCompositeSolidMask_nx8x0565neon 的速度提高了 8 倍

ffmpeg - libavcodec

用于众多 Linux 分发版的 LGPL 媒体播放器

视频:MPEG-2、MPEG-4ASP、H.264 (AVC)、VC1

音频:Ogg Vorbis

x264 – Google 2009 年度编程之夏

GPL h.264 编码器 – 例如,针对视频会议

SSE:
英特尔推出的类似 NEON 的工具

SSE 指面向英特尔架构(IA)的SIMD
流指令扩展。 目前,英特尔® 凌动™ 最高支持 SSSE3(补充 SIMD 流指令扩展 3)。 凌动暂不支持 SSE4.x。
后者也是一个 128 位引擎,用于打包浮点数据。
这一执行模式开始于 MMX 技术。SSx 是较新的技术,取代了 MMX。。 如欲了解详细信息,
请参阅英特尔《IA-32 和 IA-64 软件开发人员手册》中的“第一卷:
基础架构”部分。 目前,SSE 概述部分在 5.5 节。 它提供 SSE、SSE2、
SSE3 和 SSSE3 的操作码。注意,数据运算通常会涉及到处理基于精度的打包浮点数值;并且需要在
XMM 寄存器之间,或在这些寄存器
与内存之间批量传输数据。 XMM 寄存器主要用于取代
MMX 寄存器。

SSE的官方介:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

(原文地址:http://blog.csdn.net/loveyaozu/article/details/51205820)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容