android的armeabi和armeabi-v7a

在ANE中如果SDK調(diào)用了so庫(kù)祭椰,則需要把so庫(kù)放到ANE下Android-ARM/lib/armeabi (調(diào)試模式)或者 armeabi-v7a(發(fā)行模式)下。

可以貼個(gè)ADT代碼說(shuō)明問(wèn)題:

//m_configType.equals("apk") 是否是發(fā)行模式

//(hasCaptiveRuntime() 是否帶運(yùn)行時(shí)

if ((m_configType.equals("apk")) || (hasCaptiveRuntime()))

{

destApkDirectory = "lib/armeabi-v7a/";

}

else

{

destApkDirectory = "lib/armeabi/";

}

而這個(gè)armeabi和armeabi-v7a究竟是什么意思集侯?

有什么深意么?

為什么調(diào)試模式和發(fā)行模式adobe會(huì)選擇不同的文件夾?

我在這篇記錄下我對(duì)于這個(gè)小問(wèn)題的理解刚夺。

armeabi與armeabi-v7a表示支持不同的CPU類型

armeabi是指的該so庫(kù)用于ARM的通用CPU闸衫,而v7a的CPU支持硬件浮點(diǎn)運(yùn)算涛贯。因此armeabi通用性強(qiáng),但速度慢蔚出,而v7a能充分發(fā)揮v7a CPU的能力弟翘,在AIR打包APK調(diào)試模式adobe選擇的是通用性強(qiáng)的armeabi模式。

android支持不同CPU的深層含義

首先從硬件支持方便來(lái)看骄酗,我們的adnroid設(shè)備目前為止大部分都是支持ARM芯片稀余,(當(dāng)然市面上此刻最新的android機(jī)器還支持intel等另外的幾個(gè)芯片,例如intel最新的凌動(dòng)項(xiàng)目芯片趋翻,就獲得了android4.1的青睞)睛琳。從android版本與支持ARM硬件編碼的程度來(lái)看:

起初android1.6:只支持armv4與armv5te指令集。

到了android2.0:增加了支持arm-vfp踏烙,armv6掸掏,armv6t2指令集。

到了android2.2:增加支持armv7-a指令集宙帝。

所以armeabi-v7a 應(yīng)該是與AIR限定支持android2.2以上的條件有關(guān)丧凤。android2.2以上能讓硬件發(fā)揮更大的作用。

我項(xiàng)目中使用armeabi還是armeabi-v7a

對(duì)于AIR項(xiàng)目來(lái)說(shuō)性能問(wèn)題是最大的瓶頸步脓,能優(yōu)化一點(diǎn)就一點(diǎn)愿待,所以如果接平臺(tái)方SDK或者寫(xiě)ANE的時(shí)候使用到SO庫(kù)浩螺,個(gè)人推薦全部放到armeabi-v7a下,而不要為了兼容放到armeabi仍侥。

-EOF-

在我們android APK的根目錄有一個(gè) libs文件夾要出,此文件夾下包含了armeabi 和armeabi-v7a兩個(gè)文件夾,我們的c代碼編譯成的本地庫(kù)(各種.so)就會(huì)放在這兩個(gè)文件夾其中的一個(gè)农渊。那armeabi-v7a 與 armeabi有什么區(qū)別患蹂,都是什么意思呢?

armeabi和armeabi-v7a是表示cpu的類型砸紊,我們知道一般的手機(jī)或平板都是用arm的cpu(mips的就悲催的被忽視了)传于,不同的cpu的特性不一樣,armeabi就是針對(duì)普通的或舊的arm v5 cpu醉顽,armeabi-v7a是針對(duì)有浮點(diǎn)運(yùn)算或高級(jí)擴(kuò)展功能的arm v7 cpu沼溜。

在android.mk里可配置以下宏:

TARGET_CPU_API := armeabi

APP_ABI := armeabi

當(dāng)你編譯時(shí)出現(xiàn)一些鏈接動(dòng)態(tài)庫(kù)的undefine錯(cuò)誤,或你的apk運(yùn)行時(shí)出現(xiàn)裝載.so動(dòng)態(tài)庫(kù)錯(cuò)誤時(shí)游添,不妨看一下這個(gè)cpu類型的配置是否有誤系草。

========================================================================================================

現(xiàn)在還有x86的了,其實(shí)armeabi 唆涝、armeabi-v7a 和x86是編譯 NDK 庫(kù)時(shí)找都,可以使用三種支持的應(yīng)用二進(jìn)制接口(ABI):

‘a(chǎn)rmeabi’ – 默認(rèn)選項(xiàng),將創(chuàng)建以基于 ARM* v5TE 的設(shè)備為目標(biāo)的庫(kù)廊酣。 具有這種目標(biāo)的浮點(diǎn)運(yùn)算使用軟件浮點(diǎn)運(yùn)算檐嚣。 使用此 ABI 創(chuàng)建的二進(jìn)制代碼將可以在所有 ARM* 設(shè)備上運(yùn)行。

‘a(chǎn)rmeabi-v7a’ – 創(chuàng)建支持基于 ARM* v7 的設(shè)備的庫(kù)啰扛,并將使用硬件 FPU 指令嚎京。

‘x86’ – 生成的二進(jìn)制代碼可支持包含基于硬件的浮點(diǎn)運(yùn)算的 IA-32 指令集。

==========================================================================================================

什么是 NEON隐解?

NEON* 是一種 ARM* 技術(shù)鞍帝,主要用于多媒體(智能手機(jī)和高清電視等)應(yīng)用。 ARM* 表示其基于 128 位 SIMD 引擎的技術(shù) – ARM* Cortex*(一種串行擴(kuò)展)—可提供比 ARM* v5 架構(gòu)至少高 3 倍的性能煞茫,以及比 ARM* v6 至少高 2 倍的性能帕涌。 如欲了解有關(guān)此技術(shù)的詳細(xì)信息,以深入了解 NEON 及其它性能考慮续徽,請(qǐng)?jiān)L問(wèn)以下網(wǎng)址:http://www.arm.com/products/processors/technologies/neon.php

此處的關(guān)鍵理念為蚓曼,各寄存器被“堆積”成一個(gè)矢量,其中每一個(gè)寄存器均為一個(gè)元素钦扭,并與其它元素的數(shù)據(jù)類型相匹配纫版。 在此基礎(chǔ)之上,運(yùn)算在管道內(nèi)執(zhí)行客情,因而這一方法被稱作 Packed SIMD其弊。

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

SSE 指面向英特爾架構(gòu)(IA)的SIMD 流指令擴(kuò)展癞己。 目前,英特爾? 凌動(dòng)? 最高支持 SSSE3(補(bǔ)充 SIMD 流指令擴(kuò)展 3)梭伐。 凌動(dòng)? 暫不支持 SSE4.x痹雅。后者也是一個(gè) 128 位引擎,用于打包浮點(diǎn)數(shù)據(jù)糊识。 這一執(zhí)行模式開(kāi)始于 MMX 技術(shù)绩社。SSx 是較新的技術(shù),取代了 MMX赂苗。愉耙。 如欲了解詳細(xì)信息,請(qǐng)參閱英特爾《IA-32 和 IA-64 軟件開(kāi)發(fā)人員手冊(cè)》中的“第一卷: 基礎(chǔ)架構(gòu)”部分哑梳。網(wǎng)址為:http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html。 目前绘盟,SSE 概述部分在 5.5 節(jié)鸠真。 它提供 SSE、SSE2龄毡、SSE3 和 SSSE3 的操作碼吠卷。注意,數(shù)據(jù)運(yùn)算通常會(huì)涉及到處理基于精度的打包浮點(diǎn)數(shù)值沦零;并且需要在 XMM 寄存器之間祭隔,或在這些寄存器與內(nèi)存之間批量傳輸數(shù)據(jù)。 XMM 寄存器主要用于取代 MMX 寄存器路操。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疾渴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屯仗,更是在濱河造成了極大的恐慌搞坝,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魁袜,死亡現(xiàn)場(chǎng)離奇詭異桩撮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)峰弹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)店量,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鞠呈,你說(shuō)我怎么就攤上這事融师。” “怎么了蚁吝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵诬滩,是天一觀的道長(zhǎng)霹粥。 經(jīng)常有香客問(wèn)我,道長(zhǎng)疼鸟,這世上最難降的妖魔是什么后控? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮空镜,結(jié)果婚禮上浩淘,老公的妹妹穿的比我還像新娘。我一直安慰自己吴攒,他們只是感情好张抄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著洼怔,像睡著了一般署惯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镣隶,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天极谊,我揣著相機(jī)與錄音,去河邊找鬼安岂。 笑死轻猖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的域那。 我是一名探鬼主播咙边,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼次员!你這毒婦竟也來(lái)了败许?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤淑蔚,失蹤者是張志新(化名)和其女友劉穎檐束,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體束倍,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡被丧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绪妹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甥桂。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖邮旷,靈堂內(nèi)的尸體忽然破棺而出黄选,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布办陷,位于F島的核電站貌夕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏民镜。R本人自食惡果不足惜啡专,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望制圈。 院中可真熱鬧们童,春花似錦、人聲如沸鲸鹦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)馋嗜。三九已至齐板,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間葛菇,已是汗流浹背甘磨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熟呛,地道東北人宽档。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓尉姨,卻偏偏與公主長(zhǎng)得像庵朝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子又厉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容