Android開發(fā)中栈源,在打包發(fā)布應用時會選擇應用適配的cpu架構平臺,在引用第三方庫時也遇到根據不同cpu架構引入相應的so包竖般。Android主要包括一下cpu架構:
- ARMv5
- ARMv7 (從2010年起)
- x86 (從2011年起)
- MIPS (從2012年起)
- ARMv8
- MIPS64
- x86_64 (從2014年起)
在Android系統(tǒng)上甚垦,每一個CPU架構對應一個ABI:
- armeabi
- armeabi-v7a
- x86
- mips
- arm64-v8a
- mips64
- x86_64
ABI是Application Binary Interface的縮寫,常表示兩個程序模塊之間的接口涣雕,且其中一個模塊常為機器碼級別的library或操作系統(tǒng)艰亮。它定義了函數(shù)庫的調用、應用的二進制文件(尤其是.so)如何運行在相應的系統(tǒng)平臺上等細節(jié)挣郭。其中mips及mips64極少用于手機迄埃,出發(fā)點是高性能,主要用于路由器、貓兑障。
CPU架構
從CPU發(fā)明到現(xiàn)在侄非,有非常多種架構,從我們熟悉的X86流译,ARM逞怨,到不太熟悉的MIPS,IA64福澡,它們之間的差距都非常大叠赦。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類革砸,即所謂的“復雜指令集(CISC)”與“精簡指令集(RISC)”系統(tǒng)除秀。
Intel和ARM處理器的第一個區(qū)別是糯累,前者使用復雜指令集(CISC),后者使用精簡指令集(RISC)鳞仙。屬于這兩種類中的各種架構之間最大的區(qū)別寇蚊,在于它們的設計者考慮問題方式的不同。
ARM 和x86的區(qū)別
- arm 架構注重的是續(xù)航能力
- x86 架構注重的是性能
ARM架構是一個32位精簡指令集RISC(Reduced Instruction Set Computing)處理器架構棍好,其廣泛地使用在許多嵌入式系統(tǒng)設計仗岸。但在其他領域上也有很多作為,由于節(jié)能的特點借笙,ARM處理器非常適用于移動通信領域扒怖,匹配其主要設計目標為低成本、高性能业稼、低耗電的特性盗痒。
ARM的優(yōu)勢不在于性能強大而在于效率,ARM采用RISC流水線指令集低散,在完成綜合性工作方面根本就處于劣勢俯邓,而在一些任務相對固定的應用場合其優(yōu)勢就能發(fā)揮得淋漓盡致。ARM結構的電腦是通過專用的數(shù)據接口使CPU與數(shù)據存儲設備進行連接熔号,所以ARM的存儲稽鞭、內存等性能擴展難以進行(一般在產品設計時已經定好其內存及數(shù)據存儲的容量),所以采用ARM結構的系統(tǒng)引镊,一般不考慮擴展朦蕴。基本奉行“夠用就好”的原則弟头。
x86 架構是一個復雜指令集CISC(Complex Instruction Set Computer)處理器架構吩抓。X86結構的電腦無論如何都比ARM結構的系統(tǒng)在性能方面要快得多、強得多赴恨。X86的CPU隨便就是1G以上疹娶、雙核、四核嘱支。X86結構的電腦采用“橋”的方式與擴展設備(如:硬盤蚓胸、內存等)進行連接,而且x86結構的電腦出現(xiàn)了近30年除师,其配套擴展的設備種類多沛膳、價格也比較便宜,所以x86結構的電腦能很容易進行性能擴展汛聚,如增加內存锹安、硬盤等。