早在2011年,ARM就發布了第8代架構ARMv8,這也是ARM歷史上變革最大的指令集(這個頭銜也被用在了2021年發布的ARMv9身上),正式扣響了64位時代的大門。2013年9月,蘋果首發搭載64位處理器(Apple A7,基于ARMv8指令集自研)的iPhone 5S(圖1),至此移動處理器的風向瞬間從32位轉向64位。
為了迎合這股風潮,ARM在2014年正式發布了基于ARMv8-A指令集定制的Cortex-A57和Cortex-A53公版IP架構(圖2),谷歌也帶來了支持64位技術的Android 5.0系統。前者被高通驍龍410(MSM8916)、驍龍810、聯發科MT6732和麒麟620先后列裝,至此Android手機也漸過渡到了64位時代。
雖然8年前智能手機在硬件和系統層面就已經跨過了64位的門檻,但時至今日Android的軟件生態卻依舊處于64位應用和32位應用亂戰的格局。64位應用都有哪些優勢,為何它的普及就這么難?

電子計算設備都是使用二進制(0與1)來表示信息,32位與64位分別指的就是處理器在單位時間內,能一次處理的二進制數的位數分別為32位和64位。在尋址方面,32位的尋址空間為2的32次方(大約4GB),而64位則可實現2的64次方的指數級別增長,并支持動態內存分配,這意味著在6 4位的軟硬生態下,任何一個應用都可以分配到超過4GB的RAM,這對于游戲等大型應用的性能表現有著更進一步的提升。
vivo官方曾經如此評價:“支持64位設備是Android應用程序利用超過4GB RAM地址空間、在數據處理中利用更寬寄存器和更高精度,以及獲取強化安全特性的唯一途徑。”換句話說。64位處理器+64位系統+64位應用,只有這三駕軟硬層面的馬車并駕齊驅時,才能讓手機的運行效率得以最大限度的釋放。
聯發科實驗室曾基于不同IP的移動SoC進行過詳細測試,結果表明在玩家關心的主流游戲性能方面,64位相比32位有著30%~40%的提升,64位應用能帶給手機玩家更加絲滑流暢的游戲體驗(圖3)。

在應用冷啟動速度方面,聯發科實驗室還基于天璣9000移動平臺進行了相關測試。結果顯示,64bit應用的冷啟動速度相比32bit應用快13%~60%(圖4),用戶可以明顯感知到應用啟動速度的提升。在手游方面,通過UnityEngine “Armies”Demo對比測試結果表明,運行64bit編碼版本相比32bit可帶來額外的16%的幀率提升(圖5)。

此外,根據ARM實驗室的測試數據顯示,與32bit計算相比,智能手機上的64bit計算在壓縮文件時可帶來超過90%的性能提升,在解壓縮時速度則能提高將近80%。在能耗方面,對比于32bit的計算環境,主流移動處理器架構在64bit的計算環境下能獲得13.2%~35.2%的能效提升,這意味著處理器只需耗費更少的電能就能完成相同的計算任務。此外,64bit架構還強化了設備的安全性,包括分支目標識別(BTI)、指針身份驗證(PAC)和內存標簽擴展(MTE)等,這些在32bit架構中無法實現的安全功能都將在64bit架構中實現。
既然64位生態這么好,為什么各大應用商店提供的很多最新應用卻依舊死守32位的版本呢?
沒辦法,理論和現實之間是存在摩擦力的。在過去的十余年里,32位應用已經建立了完善的開發者生態,哪怕是ARM這個規則制定者都不能推倒重來另起爐灶。為了兼容32位程序,ARM在ARMv8和Cortex-A57及其后續指令集和架構中加入了AArch64和AArch32兩種運行狀態(圖6),分別適配64位和32位應用。

對于開發者來說,一款應用要想取得成功,關鍵是可以俘獲更多的用戶安裝,因此絕不可能放棄存量更多的舊手機(搭載僅支持32位應用的處理器和系統)。既然新款處理器和Android系統都能同時兼容32位和64位的應用,從成本和后期的維護來看,直接開發32位應用顯然最為劃算,新老手機都能安裝,最多就是新手機無法以最佳狀態運行而已。如果只開發64位應用,會流失龐大的老設備用戶群體,同時推出32位和64位應用對后續維護成本也是一種負擔。
相對來說,蘋果在推廣64位應用時就要順利許多。因為iOS屬于封閉的軟硬生態,就連開發者使用的開發工具都來自于蘋果,強大的管控能力讓蘋果在軟硬件的適配方面說一不二,從2014年到2017年,只用了4年時間就完成了32位應用向64位應用的迭代。然而,Android卻屬于開放生態,除了谷歌自己的Play商店,各大手機品牌也都出廠預裝了自家的應用商店,市面上還存在以百度軟件管家、酷安、騰訊應用寶為代表的無數第三方應用市場(圖7),我們在安裝某個應用時還經常遇到從第三方商店跳轉到官方商店的情形。在這個大環境下,想裝個純凈的官方應用都不太容易,全面普及64位應用就更難實現了。
就拿筆者手機中安裝的應用來看,包括北京銀行、魯大師的性能評測插件、OPPO手機預裝的游戲中心在內的很多應用依舊還停留在32位的版本上(圖8)。

在Android生態領域,谷歌和ARM無疑屬于“頂層建筑”,而它們也很早就開始了推廣64位應用的努力。以谷歌為例,早在2019年初就通知開發者:“從2019年8月1日開始,您在Google Play上發布的應用將需要支持64位架構。64位CPU為您的用戶提供更快,更豐富的體驗。添加應用程序的64位版本可改善性能,為將來的創新打下基礎,并為使用僅64位硬件的設備做好準備。”
然而,Android的開放生態,注定了谷歌與開發者之間的關系更像是盟友與合作者,而不是iOS生態中開發者只是蘋果的“打工仔”。何況國內用戶對Google Play幾乎無感,更多第三方的分發渠道,大幅限制了谷歌的掌控力。
相對于谷歌,ARM推廣6 4位應用的手段顯得更加暴力和直接。早在2020年10月ARM就曾表態,自2022年開始的IP設計中將逐漸取消對32位的支持。實際上,ARM在2021年發布的基于ARMv9指令集打造的Cortex-X2(超大核)和Cortex-A510(小核),就已經取消了對AArch32的支持,只有Cortex-A710能同時支持AArch32和AArch64,據說這還是應中國客戶要求特殊設計的,因為中國市場還有太多應用停留在32位(圖9)。
這意味著,當你打開某個32位APP時,無論它處于前臺還是后臺掛起狀態都只能交由Cortex-A710運行,既無法享受到Cortex-X2的更強性能,也無法通過big.LITTLE技術切換技術切換到更省電的Cortex-A510,存在嚴重的效率折損和資源浪費。大家可以想象一下,當你正在使用搭載新驍龍8和天璣9000芯片的旗艦手機時,哪怕運行個小說軟件(32位版)都必須使Cortex-A710核心,長時間忍受高耗電和高發熱的情景嗎?
ARM在6月底正式發布了面向下一代移動平臺設計的IP架構Coretx-X3、Coretx-A715和Coretx-A510 Refresh,其中Coretx-X3和Coretx-A715均放棄了對AArch32的支持,但全新設計的Coretx-A510 Refresh則同時兼容AArch32和AArch64,但是AArch32只限于特定的選擇中。
據悉,預計到2023年底,上市旗艦手機中ARM的IP架構將全面放棄對32位應用的支持,僅支持64位應用運行,這是上游廠商在“逼”下游廠商全面支持64位應用。其更深層的原因其實是,目前不支持64位應用程序的純32位應用處理器在移動市場中出貨量已幾近消失,同時32位應用的天生缺陷也開始逐步限制了Android平臺軟硬生態的進步,而這一問題已經到了非解決不可的地步。

隨著時間的推移,無論是ARM、谷歌、開發者還是普通用戶,都已經對64位應用一統江湖達成了共識。而“金標聯盟”的成立以及移動應用生態系統全面向64位遷移公告的發布(圖10),就是這種共識的集中體現。

⑩
早在今年4月,金標聯盟就宣布要共同推進64位移動計算生態,并發布了第一階段的2個關鍵時間節點:自2022年4月1日起,金標聯盟成員OPPO、vivo、小米(按首字母排序)等主流應用商店,不允許單獨上架新的32位應用包,可支持采用兼容包或雙包上傳,游戲類暫不受限制。允許單獨發布32位應用的更新包,產品側會進行強提示。自2022年7月1日起,不允許單獨上架新的32位游戲應用包,可支持采用兼容包或雙包上傳(圖11)。

在6月中旬舉辦的金標聯盟開發者沙龍中,金標聯盟再度強調了64位應用生態的價值與意義,并公布了金標聯盟64位應用生態推動進程的更詳細計劃:自2022年10月1日起,應用(游戲除外)更新包不允許單獨更新32位應用包,可支持兼容包或雙包更新。自2022年12月1日起,游戲應用的更新包不再允許單獨更新32位應用包,必須支持兼容包或雙包更新(圖12)。

換句話說,從今年12月開始,金標聯盟涉及的應用商店將全面實現64位應用的遷移及適配工作,實現Android生態應用整體性能提升、安全提高和資源保護的既定目標(圖13)。公告發布后,OPPO、vivo、小米也積極響應并倡議共同推進64位移動計算生態(圖14),ARM和谷歌推動的64位夢將最終得以落地。
除了64位應用生態建設以外,金標聯盟還公布了金標認證服務。我們可以將金標認證服務理解為手機領域的“EVO認證”,凡是通過聯盟制定的穩定性、兼容性、性能、功耗、安全等標準測試后便能獲得金標認證(圖15),消費者閉眼都可放心購買。針對即將來襲的Android 13系統,金標聯盟為開發者提供了兼容性框架工具(圖16),還與開發者分享了大屏手機應用適配的系統性設計思路(圖17)。
在全面擁抱64位應用的進程中,IP供應商(ARM)、移動芯片廠商(高通、聯發科等)、系統供應商(谷歌Android)、應用商店和開發者都是不可或缺的一環。在金標聯盟的推動下,今年年底之前Android手機生態真能全面跨入64位時代嗎?讓我們拭目以待吧。
