1. 程式人生 > >armeabi-v7a armeabi arm64-v8a

armeabi-v7a armeabi arm64-v8a

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在的手機上真的有用嗎?我只能說,目前確實沒啥用,但今後或許有。

真正的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位程式擺在你眼前,也無法安裝。

Android L開始才真正支援32位和64位的ART虛擬機器,配合上64位處理器,名正言順的執行64位軟體。但是問題又來了,沒有軟體商願意開發64位程式。我有幾個搞安卓開發的朋友,都明確表示永遠不涉足64位安卓程式開發,這又是為什麼呢?

ARMv8是一套不錯的指令集,它既支援未來的64位程式,也向下相容現有32位程式。有了ARMv8的支撐,以後的64位手機作業系統,如Android L 64bit都可以簡單、高效地支援現有的32位App,你不用擔心相容性問題。