圖片來源 @視覺中國
文 | 雷科技 leitech
關注智能手機領域的讀者,或許都有洞察到這樣一個變化趨勢。
從某個時間點開始,安卓系統的應用适配出現了翻天覆地的變化,諸如《暗影之槍》《塗鴉跳躍》等一系列安卓經典遊戲,都先後出現了無法安裝 / 正常運行的情況。
與此同時,各家安卓廠商的應用商店裏面,開始明确針對應用标注其是否爲「64 位版本」。不僅如此,每次我從第三方渠道給手機安裝應用,隻要系統檢測到它是 32 位 App,就會在界面彈出 " 此安裝包爲 32 位,可能造成發熱、卡頓,不建議安裝 " 的風險提示。
近日,小米更是發布了小米應用商店上架應用完全适配 64 位的通知,官方稱自 2023 年 5 月 8 日起,小米應用商店将不再允許僅 32 位包上架或更新;2023 年 7 月 1 日起,小米應用商店将逐步清理在架未适配 64 位的 App。屆時仍未适配的應用将無法上架、單獨更新,請各位開發者在期限内盡快完成适配。
在過去數年時間裏,盡管谷歌方面三申五令,但是國内安卓市場始終維持在一個以 32 位應用爲主,最多也就是同時支持 32 位和 64 位應用的階段。如今,随着硬件廠商的不斷施壓,我們正在不斷走向隻有 64 位應用的時代。或許,在這個百廢待興的 2022 年,32 位安卓應用真的時日無多了。
殺雞焉用牛刀
奇怪了,爲何小米突然特别強調「64 位應用」的重要性?你可能會感到疑惑。
歸根結底,還是因爲這一代硬件存在着一些特殊情況。衆所周知,目前無論是高通的骁龍 8 Gen 2、還是聯發科的天玑 9200,它們都采用了 ARM 最新一代 Cortex-X3 超大核,搭配上 Cortex-A710/Cortex-A715/Cortex-A720 中核以及 Cortex-A510 小核的 CPU 架構方案。
(圖源:高通)
這些 CPU 架構的共性,在于全部核心都采用了 ARM V9 指令集。該指令集在兼容 ARM V9 的基礎上,提升整體的處理器性能,同時提升安全性、增強矢量計算、機器學習及數字信号處理。
問題在于,ARM V9 和上一代 V8 一樣,兩者都是純 64 位指令集,而 Cortex-X3 大核、Cortex-A715/Cortex-A720 中核和第一代 Cortex-A510 小核均隻支持(向下兼容 V8)64 位,隻有 Cortex-A710 和第二代 A510 能夠兼容 32 位的 V7 指令集。
換言之,在今年發布的兩款旗艦處理器中,天玑 9200 完全不支持 32 位應用,而骁龍 8 Gen 2 在運行 32 位應用時,也隻能用到其中的兩個中核和三個小核,無法使用超大核的極緻性能,這樣一來運行速度和效率就會大打折扣,嚴重一點可能還會出現增加功耗、應用閃退等問題。
(圖源:ARM)
不過骁龍 8 Gen 2 的 32 位應用支持,本質上隻是對國内市場的妥協。
早在 2001 年,ARM 便明确表示了升級 64 位的決心,并指出 2023 年 ARM 所有的大小核架構都将采用 64 位指令集。
受此影響,目前聯發科已經全線轉向 64 位指令集,除了旗艦産品天玑 9200 以外,中端産品天玑 7200 同樣砍掉了 32 位應用支持。
至于高通這邊,有消息稱骁龍 8 Gen3 将會是一顆純 64 位處理器,放棄了對 32 位的原生支持。從某種角度來看,這也算是硬件廠商們在「倒逼」應用軟件開發商去加速應用轉向 64 位生态的一種表現。
從 32 位到 64 位
事實上,在谷歌的眼裏,32 位應用是個早應該被淘汰的「殘次品」。
要知道高通在 2013 年發布的骁龍 410,就已經是一款 64 位的處理器;而谷歌在 2014 年發布的 Android 5.0,也已經是一款 64 位的安卓系統。
這代表安卓手機從很早開始,無論是在硬件層面還是系統層面都已經是 64 位,運行起 64 位應用完全沒問題。
不過雖然開始得快,但是谷歌松散的态度,讓 64 位生态到來的時間大大延後了。
以蘋果爲例,蘋果對旗下應用生态體系的掌控手段可謂是遠近聞名。2015 年 2 月,蘋果宣布所有 iOS 應用程序都必須支持 64 位,到了 2017 年,蘋果正式宣布 iOS 11 将不再支持 32 位應用程序,自此成功實現了 64 位的過渡。
作爲對比,盡管谷歌早在 2013 便支持 64 位應用,但一直以來卻并未得到開發人員的重視,即便是在 2019 年強制 Google Play 上架 64 位應用後,部分知名公司的 64 位應用依然存在着 bug 頻出的現象。
國際環境如此,國内安卓生态環境自然更加魚龍混雜。
事實上,直到 2021 年,高通 8 Gen 1 和聯發科 9000 處理器出來之前,安卓這邊始終缺乏一套行之有效的方式來從「根本上」解決這個問題。
值得慶幸的是,全新處理器底層架構的出現,對既有的應用生态造成了明顯沖擊。随着越來越多基于 Cortex-A715、Cortex-A510 架構的中端,甚至是入門處理器登場,更多的主流機型都會出現運行 32 位應用比運行 64 位應用更慢、更耗電、發熱量更大的現象。
正因如此,除了小米已經開始通過各種各樣的渠道,督促用戶盡可能使用 64 位應用之外。2021 年 4 月,包括小米應用商店、OPPO 應用商店、vivo 應用商店、騰訊應用寶和百度手機助手在内的國内幾大主流安卓應用商店,更是聯合宣布了推進 64 位架構升級的計劃。
直到這時,32 位應用才似乎迎來了業界的聯合 " 強制性 " 手段。雖然在手段的背後,多少有些硬件倒逼軟件更新的意味,但是這樣一套強硬措施下來,确實能夠驅使着安卓應用開發者必須全面跟上時代,再也不能再靠着老舊的 32 位版本摸魚養老,這絕對是個好消息。
未來屬于 64 位
既然聯合倡議已經公布,那麽各家廠商執行得怎麽樣?
想要弄清楚這個問題,我們需要借助一個名爲《LibChecker》的應用來查詢手機裏面的 64 位應用數量。
(圖源:知乎)
舉個例子,借助第三方程序 LibChecker 來查詢機内應用,可以确定我使用的小米手機目前機内應用數量爲 312 個,其中大約有 85% 的應用爲 64 位,僅有 15% 的應用爲 32 位。
具體分析的話,目前國内熱門應用已經全面升級 64 位應用,小米預裝應用也幾乎全面升級成 64 位應用,但是依然有些冷門應用、經典遊戲和小米電視助手還停留在 32 位的階段。
冷門應用和經典遊戲,幾乎可以确定是等不到更新的,我們隻能希望小米官方能夠盡快完成自家應用的全面适配。
當然,并非每個應用的 64 位版本都更好用。據知乎網友反映,部分廠商爲了趕着上架,提供的 64 位應用存在不少 BUG,例如缺少特定功能,或是無法使用簡潔模式和夜間模式等均有可能發生。
在我看來,強制不支持 32 位可能在短時間内會對部分應用和用戶體驗造成影響,但從長期來看,這絕對是一件好事。
站在廠商的角度來說,讓 32 位應用強行運行在 64 位處理器上,即便核心支持對應的陳舊指令集,處理器的性能依然可能無法得到完全發揮,反而會造成前面說的卡頓、增加功耗等問題,可能會對産品的口碑造成不可逆的負面影響。
站在用戶的角度來說,擁抱 64 位應用生态,可以讓單線程處理超過 4GB 的運行内存,保證在處理視頻、遊戲、解碼等操作下,更充分地調動移動設備的性能,讓機内硬件得到充分發揮。同時去除 32 位指令集,也可以讓核心更加精簡,減少不必要的效能損耗。
換言之,從基于新一代架構的新款旗艦機型,到基于數年前架構的老款中端機型,新版安卓應用理論上都能帶來更高的執行效率。
正因如此,我可以大膽斷定:安卓生态的未來,必将屬于 64 位應用,屬于 32 位應用的倒計時,已經開始嘀嗒作響了。