Android 的ARM架構和X86架構

Android開發中,在打包發布應用時會選擇應用適配的cpu架構平臺,在引用第三方庫時也遇到根據不同cpu架構引入相應的so包。Android主要包括一下cpu架構:

  • ARMv5
  • ARMv7 (從2010年起)
  • x86 (從2011年起)
  • MIPS (從2012年起)
  • ARMv8
  • MIPS64
  • x86_64 (從2014年起)

在Android系統上,每一個CPU架構對應一個ABI:

  • armeabi
  • armeabi-v7a
  • x86
  • mips
  • arm64-v8a
  • mips64
  • x86_64

ABI是Application Binary Interface的縮寫,常表示兩個程序模塊之間的接口,且其中一個模塊常為機器碼級別的library或操作系統。它定義了函數庫的調用、應用的二進制文件(尤其是.so)如何運行在相應的系統平臺上等細節。其中mips及mips64極少用于手機,出發點是高性能,主要用于路由器、貓。

CPU架構

從CPU發明到現在,有非常多種架構,從我們熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類,即所謂的“復雜指令集(CISC)”與“精簡指令集(RISC)”系統。

Intel和ARM處理器的第一個區別是,前者使用復雜指令集(CISC),后者使用精簡指令集(RISC)。屬于這兩種類中的各種架構之間最大的區別,在于它們的設計者考慮問題方式的不同。

ARM 和x86的區別

  • arm 架構注重的是續航能力
  • x86 架構注重的是性能

ARM架構是一個32位精簡指令集RISC(Reduced Instruction Set Computing)處理器架構,其廣泛地使用在許多嵌入式系統設計。但在其他領域上也有很多作為,由于節能的特點,ARM處理器非常適用于移動通信領域,匹配其主要設計目標為低成本、高性能、低耗電的特性。

ARM的優勢不在于性能強大而在于效率,ARM采用RISC流水線指令集,在完成綜合性工作方面根本就處于劣勢,而在一些任務相對固定的應用場合其優勢就能發揮得淋漓盡致。ARM結構的電腦是通過專用的數據接口使CPU與數據存儲設備進行連接,所以ARM的存儲、內存等性能擴展難以進行(一般在產品設計時已經定好其內存及數據存儲的容量),所以采用ARM結構的系統,一般不考慮擴展。基本奉行“夠用就好”的原則。

x86 架構是一個復雜指令集CISC(Complex Instruction Set Computer)處理器架構。X86結構的電腦無論如何都比ARM結構的系統在性能方面要快得多、強得多。X86的CPU隨便就是1G以上、雙核、四核。X86結構的電腦采用“橋”的方式與擴展設備(如:硬盤、內存等)進行連接,而且x86結構的電腦出現了近30年,其配套擴展的設備種類多、價格也比較便宜,所以x86結構的電腦能很容易進行性能擴展,如增加內存、硬盤等。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容