armeabi就是針對普通的或舊的arm v5 cpu,armeabi-v7a是針對有浮點運算或高級擴展功能的arm v7 cpu。架構
armeabi-v7a(32位ARM設備),arm64-v8a(64位ARM設備)性能
在2011年11月,ARM公司發佈了新一代處理器64位架構ARMv8的部分技術細節(也就是咱們常說的Cortex-A57A53),表明着將來移動處理器邁入64位行列。咱們得明確一點,ARM公司本身自己並無64位芯片設計技術,他是經過了收購MIPS64處理器架構的部分技術使用權,再結合ARM的一些特性設計出來的。也就是說:MIPS、ARM、X86三大架構中,惟一沒有64位技術的ARM,經過收購MIPS的形式獲得了64位。
所謂的ARMv8架構,就是在MIPS64架構上增長了ARMv7架構中已經擁有的的TrustZone技術、虛擬化技術及NEON advanced SIMD技術等特性,研發成的。操作系統
64位ARMv8架構中包含兩個執行狀態:AArch32(也就是咱們常說的ARMv7)和AArch64(ARMv8)。AArch64執行狀態針對64位處理技術,引入了一個全新指令集A64(也就是基於收購的MIPS64架構),而AArch32執行狀態將支持現有的ARM指令集。因此64位的ARM處理器中同時包含着32位的ARMv7和64位的ARMv8兩種架構。所以:設計
看到這裏,你必定明白了,ARM64位處理器和電腦的64位處理器是兩個截然不容的概念,他並非64位就能原生向下兼容32位程序,而是經過64位處理器中集成的32位架構來運行32位程序。說得通俗點,它不是以64位形態來運行32位程序,倒是以32位的形態運行32位程序的。內存
因爲目前新出的64位處理器包含兩個架構,並且製程技術沒有提高(28nm),同時在手機與平板上,芯片面積有着嚴格的限定,不能過度增長,這致使64位ARM處理器平均分配到每一個架構的晶體管數量銳減,也就是說從64位處理器中的32位架構方面,對於同規格的32位處理器而言,不但沒有提升,性能反而是必定規模降低的。但處理器廠家又必須給消費者一個交代,以更好的推廣64位,因此廠家就必須在其餘方面提高性能,以彌補CPU的晶體管數量減小帶來的損失。好比:更換性能更強的GPU、提高內存帶寬、多核心虛擬單顆核心提高單核性能、聯合跑分軟件商修改跑分權重(提高GPU分數,下降CPU分數的權重)等等。這樣,揚長避短,最終到達消費者手裏,用跑分軟件一跑,確實有提高,用戶開心,廠家腰包也鼓了。開發
綜上所述,ARM64位處理器從嚴格意義來講,叫它ARM32+64更加貼切,他相對於ARM32位處理器,有倒退的地方,也有進步的餘地,但正由於倒退激起了ARM進取的決心,讓它大刀闊斧的向前變革,不得不說也算一種進步。但ARM64在的手機上真的有用嗎?我只能說,目前確實沒啥用,但從此或許有。v8
真正的64位手機並不止單純停留在處理器上,若是隻由於它的處理器是64位,就稱其爲64位手機的話,咱們能夠絕不猶疑的說這多是虛假宣傳,好在聯想很聰明,在發佈A678t和A805e宣傳的時候,只說64位處理器手機。
「64位處理器手機」與「64位手機」是兩種天壤之別的概念:只要是處理器包含64架構位的,就能夠稱「64位處理器手機」,這種手機也許還運行不了64位程序,只是用來搶佔市場,和32位手機比起來優點並不明顯。
「64位手機」就不一樣了:它包含着64位處理器、64位標準系統、64位安卓虛擬機、以及64位程序,這纔是真正意義上的64位手機!虛擬機
聽我細細解說:谷歌官方曾說,安卓很早前就支持64位了,這話不假,從Android4.0到Android4.4,安卓系統都支持64位的硬件,可是這僅僅表示底層驅動支持64位,能運行在64位的硬件之上,僅此而已。然而,上層運行軟件的,不管是Dalvik的虛擬機,仍是ART虛擬機都是32位的。也就是說,只要你的手機系統是Android4.0—4.4,即使你的處理器是64位,也只能在32位虛擬機下運行32位程序,就算真的64位程序擺在你眼前,也沒法安裝。it
Android L開始才真正支持32位和64位的ART虛擬機,配合上64位處理器,名正言順的運行64位軟件。可是問題又來了,沒有軟件商願意開發64位程序。我有幾個搞安卓開發的朋友,都明確表示永遠不涉足64位安卓程序開發,這又是爲何呢?dva
ARMv8是一套不錯的指令集,它既支持將來的64位程序,也向下兼容現有32位程序。有了ARMv8的支撐,之後的64位手機操做系統,如Android L 64bit均可以簡單、高效地支持現有的32位App,你不用擔憂兼容性問題。