日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發(fā)布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

在Android日常的開發(fā)過程中有的項目需要引入第三方的庫,有時候大家可能會在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到底是什么

mipsMIPS是世界上很流行的一種RISC處理器。MIPS的意思是“無內(nèi)部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),

其機制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問題。

armeabi:默認(rèn)選項,將創(chuàng)建以基于 ARM* v5TE 的設(shè)備為目標(biāo)的庫。 具有這種目標(biāo)的浮點運算使用軟件浮點運算。 使用此 ABI (二進(jìn)制接口)

創(chuàng)建的二進(jìn)制代碼將可以在所有 ARM* 設(shè)備上運行。所以armeabi通用性很強。但是速度慢

armeabi-v7a創(chuàng)建支持基于 ARM* v7 的設(shè)備的庫,并將使用硬件 FPU 指令。armeabi-v7a是針對有浮點運算或高級擴展功能的arm v7 cpu。

x86:支持基于硬件的浮點運算的 IA-32 指令集。x86是可以兼容armeabi平臺運行的,無論是armeabi-v7a還是armeabi,同時帶來的也是性能上的損耗,

另外需要指出的是,打包出的x86的so,總會比armeabi平臺的體積更小。

總結(jié)

如果項目只包含了 armeabi,那么在所有Android設(shè)備都可以運行; 如果項目只包含了 armeabi-v7a,除armeabi架構(gòu)的設(shè)備外都可以運行;?

如果項目只包含了 x86,那么armeabi架構(gòu)和armeabi-v7a的Android設(shè)備是無法運行的; 如果同時包含了 armeabi, armeabi-v7a和x86,

所有設(shè)備都可以運行,程序在運行的時候去加載不同平臺對應(yīng)的so,這是較為完美的一種解決方案,同時也會導(dǎo)致包變大。

擴展知識

NEON

通過干凈方式構(gòu)建的 NEON 技術(shù)可無縫用于其本身的獨立管道和寄存器文件。

NEON 技術(shù)是 ARM?Cortex?-A 系列處理器的 128 位 SIMD(單指令,多數(shù)據(jù))架構(gòu)擴展,旨在為消費性多媒體應(yīng)用程序提供

靈活、強大的加速功能,從而顯著改善用戶體驗。它具有 32 個寄存器,64 位寬(雙倍視圖為 16 個寄存器,128 位寬。)

NEON 指令可執(zhí)行“打包的 SIMD”處理:

  • 寄存器被視為同一數(shù)據(jù)類型元素矢量
  • 數(shù)據(jù)類型可為:簽名/未簽名的 8 位、16 位、32 位、64 位單精度浮點數(shù)
  • 指令在所有通道中執(zhí)行同一操作

使用 NEON 技術(shù)的 ARM Cortex?-A 系列處理器,以及 ARM 的 Mali 多媒體硬件解決方案可用于多媒體應(yīng)用,

范圍從智能手機和移動計算設(shè)備到 HDTV。

NEON的優(yōu)點

NEON 增強了用戶體驗
NEON 可增強許多多媒體用戶體驗:
觀看任意格式的任意視頻
編輯和強化捕獲的視頻 – 視頻穩(wěn)定性
鋸齒消除渲染和合成
游戲處理
快速處理幾百萬像素的照片
語音識別
強大的多通道高保真音頻處理
NEON 的特征和優(yōu)點
NEON 支持用于 Internet 應(yīng)用程序的范圍廣泛的多媒體編解碼器:
許多軟編解碼器標(biāo)準(zhǔn):MPEG-4、H.264、On2 VP6/7/8、Real、AVS
對于各種格式的正常大小的“Internet 流”解碼來說,是理想的解決方案
不僅僅針對編解碼器,還適用于 2D 和 3D 圖形和其他矢量處理
提供現(xiàn)有工具、操作系統(tǒng)支持和生態(tài)體系支持
所需周期減少:
NEON 可使復(fù)雜視頻編解碼器的性能提升 60-150%
單個簡單 DSP 算法可實現(xiàn)更大的性能提升(4 倍 -8 倍)
處理器可更快進(jìn)入睡眠狀態(tài),從而在整體上節(jié)約了動態(tài)功耗?
NEON 技術(shù)的大量元素能夠提高性能并簡化軟件開發(fā)過程,如:?
通過對齊和非對齊數(shù)據(jù)訪問,可對 SIMD 操作進(jìn)行有效的矢量化。
清晰的指令集架構(gòu),設(shè)計用于自動矢量化編譯器和手動編碼。
有效訪問打包數(shù)組,如 ARGB 或 xyz 坐標(biāo)
支持整數(shù)和浮點操作,以確保適合從編解碼器、高性能計算到 3D 圖形等廣泛應(yīng)用領(lǐng)域。
與 ARM 處理器緊密結(jié)合,提供單指令流和內(nèi)存的統(tǒng)一視圖,從而能夠提供一個具有更簡單工具流的開發(fā)平臺目標(biāo)。nbsp;
通過具有雙 128 位/64 位視圖的大型 NEON 寄存器文件,可有效處理數(shù)據(jù)并盡可能減少對內(nèi)存的訪問,從而增加了數(shù)據(jù)吞吐量。

如何使用 NEON
OpenMAX DL 庫:
加速 AV 編解碼器的建議方法
以源格式釋放的庫,在 ARM 網(wǎng)站上免費提供
支持以下格式:MPEG-4 簡單配置文件、H.264 基準(zhǔn)、JPEG、MP3、AAC
支持以下功能:FIR、IIR、FFT、點積、色彩空間轉(zhuǎn)換、de-blocking.de-ringing、旋轉(zhuǎn)、縮放、合成
矢量化編譯器:
使用現(xiàn)有源代碼自動搜索 NEON SIMD
受 ARM RealView 開發(fā)套件(v3.1 Pro 及更高版本)支持
在 2007q3 及更高版本中受 gcc 支持
C 內(nèi)部函數(shù):
C 函數(shù)調(diào)用接口至 NEON 操作
支持 NEON 支持的所有數(shù)據(jù)類型和操作
在 ARM RealView 開發(fā)套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持
匯編器:
針對確實需要在最低級別進(jìn)行優(yōu)化的用戶
在 ARM 的 RealView 開發(fā)套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持

開源社區(qū)中的 NEON 支持
當(dāng)前,在以下開源項目中支持 NEON:
Android – NEON 優(yōu)化
使用 NEON,Skia 庫 S32A_D565_Opaque 的速度加快了 5 倍
Ubuntu 09.04 支持 NEON:
關(guān)鍵共享庫的 NEON 版本
Bluez – 官方 Linux 藍(lán)牙協(xié)議堆棧
NEON SBC 音頻編碼器
Pixman(Cairo 2D 圖形庫的一部分)
合成/alpha 混合
X.Org、Mozilla Firefox、Fennec 和 Webkit 瀏覽器
例如,使用 NEON 后,fbCompositeSolidMask_nx8x0565neon 的速度提高了 8 倍
ffmpeg - libavcodec
用于眾多 Linux 分發(fā)版的 LGPL 媒體播放器
視頻:MPEG-2、MPEG-4ASP、H.264 (AVC)、VC1
音頻:Ogg Vorbis
x264 – Google 2009 年度編程之夏
GPL h.264 編碼器 – 例如,針對視頻會議

SSE: 英特爾推出的類似 NEON 的工具

SSE 指面向英特爾架構(gòu)(IA)的SIMD 流指令擴展。 目前,英特爾? 凌動? 最高支持 SSSE3(補充 SIMD 流指令擴展 3)。 凌動暫不支持 SSE4.x。

后者也是一個 128 位引擎,用于打包浮點數(shù)據(jù)。 這一執(zhí)行模式開始于 MMX 技術(shù)。SSx 是較新的技術(shù),取代了 MMX。。 如欲了解詳細(xì)信息,

請參閱英特爾《IA-32 和 IA-64 軟件開發(fā)人員手冊》中的“第一卷: 基礎(chǔ)架構(gòu)”部分。 目前,SSE 概述部分在 5.5 節(jié)。 它提供 SSE、SSE2、

SSE3 和 SSSE3 的操作碼。注意,數(shù)據(jù)運算通常會涉及到處理基于精度的打包浮點數(shù)值;并且需要在 XMM 寄存器之間,或在這些寄存器

與內(nèi)存之間批量傳輸數(shù)據(jù)。 XMM 寄存器主要用于取代 MMX 寄存器。

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

轉(zhuǎn)載自:http://blog.csdn.net/loveyaozu/article/details/51205820

總結(jié)

以上是生活随笔為你收集整理的Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。