作者 | 路遙
審校 | 云昭
近日,Google正式發布了Android 13,并率先向Pixel設備推送了系統更新。
然而沒過多久,就有爆料人士在Android 13的代碼倉庫中發現,Google提交了“Move tangor to 64-bit only”(翻譯為“僅將tangor移動到64位”)。其中“tangor”為Pixel平板的代號,根據這個信息,似乎意味著Pixel平板或將僅支持64位的Android應用。
與此同時,爆料者還發現了另一個提交的信息,其中表明在安裝了Android U(Android 14) 或更高版本上的設備上無法運行32位應用的字樣。
也就是說,從明年開始,Android將放棄支持32位應用,支持64位可能會成為一個常規功能。
此話題在51CTO技術社群里也引發了熱烈討論。群友【王行】:32位被拋棄已經是時代發展的必然,實際上現行的ARM v8 64位指令集已經是10年前的產物,就智能手機來說只要是在差不多2014年后上市的主流機型,所使用的CPU架構、指令集其實都已經是針對64位環境設計的了。作為工程師可以趁著更新32位的這個“機會”走鴻蒙的一條路。
群友【周佳怡】:雖然放棄了32位,但是對于64位,谷歌提供了不同的工具和大量文檔,讓應用程序開發人員為切換到64位做好準備。對于許多應用程序,實際上幾乎沒有什么可做的,因為那些用Java或Kotlin編寫的應用程序不需要更改。但是使用游戲引擎或第三方SDK開發的應用程序需要確保使用最新的64位版本。性能上確實挺提高了很多,開發者需要了解數據類型和數據轉換都發生了變化,以及結構的對齊也發生了變化。
群友【榮先釗】:32位采用固有架構,限制了系統的發展,部分應用可能要重新做適配開發吧
群友【向陽而生】:向64位的遷移有助于減少RAM占用、減少存儲空間占用以及提高底層安全水平。另外,ARM全新的Cortex A65架構已經是純64位CPU,刪除了32位指令集,不管對用戶還是行業,都算是好事。
那么32位和64位到底有什么不同?強制升級到底有沒有必要?
1.64位的優勢
我們平常使用手機和電腦,所操作的內容在處理器上通常都是以數字表示,而處理器會以二進制的形式來儲存這些數字,為它們分配的空間會以位為單位。
而位則是指一次性可處理的數據量是多少,1字節等于8位,那么算下來,32位就是一次性可以處理處理4個字節的數據量,而64位就是一次性處理8個字節的數據量,理論上處理效率快了一倍。
不好理解,換一種說法。32位好比是3車道,而64位就好比是升級到了6車道,通行效率提升了一倍,尤其是高峰使用時效率更高,資源分配更合理,這個提升可是非常明顯。
與此同時,在尋址空間上也有比較明顯的差距,32位處理器可以訪問2的32次方個內存地址,最高支持4GB的運行內存,而64位處理器可以訪問2的64次方個內存地址,理論上可以支持大約16TB的運行內存。但這只是理論上,由于不同架構的CPU設計不同,所以能力也有差別。隨著硬件、軟件的高速發展,4GB運存早已無法滿足某些軟件的使用需求,打個比方,現在手機的運行內存基本都是6GB、8GB甚至是12GB,如果配備了32位的處理器,那么就會有部分內存被浪費,甚至還會影響到運行效能,好馬配好鞍,朝著64位升級就是剛需。
以驍龍 8 Gen 1和天璣9000為例,這兩枚芯片都采用了ARMv9架構方案,帶來了三款CPU:Cortex-X2超大核、Cortex-A710大核和Cortex-A510小核。
其中驍龍 8 Gen 1就采用了3個2.5GHz的Cortex-A710大核、1個3.0GHz的Cortex-X2超大核和4個1.8GHz的Cortex-A510小核。
但這8個核當中只有Cortex-A710能夠兼容32位應用,Cortex-X2和Cortex-A510僅支持64位操作系統及應用程序。
這也就是說在運行32位應用時,只能用到其中的3個核,其他5個核只能處于停工狀態,這樣一來運行速度和效率就會大打折扣,嚴重一點可能還會出現增加功耗、應用閃退等問題。至于32位到64位有多大的提升,聯發科公布了對比測試,證實64位應用無論是在應用的冷啟動速度還是能耗、游戲性能等方面都有顯著的提升。
圖源:MediaTek實驗室
總而言之,32位應用+64位處理器,非常影響運行效率,只有64位處理器+64位應用結合在一起,才能讓運行效率大幅度提升。
2.64位生態推進緩慢
正因為64位是趨勢,所以早在2013年,蘋果在iPhone 5s上搭載的A7處理器就是使用的是64位。
對比之前的A6的性能提升將近2倍,這次升級也讓蘋果在移動領域直接領先了同期的競爭對手。
緊接著,安卓陣營也開始積極朝著64位升級。高通第一款64位處理器驍龍410在同年年底發布,到了2014年,谷歌推出首個支持64位的安卓系統Android L。而蘋果這邊到了2015年,就已經開始要求iOS新上架的應用必須支持64位。
但由于當時政策、生態環境等多方面的影響,雖然支持64位,但依舊可以向下兼容32位,這就導致很多開發者不愿再動刀向64位遷移,于是64位處理器的優勢完全發揮不出來,同時生態也變得非常混亂。
面對這些問題,最先狠下心的是蘋果。
在2017年的iOS 11系統上就明確表示,將不再支持32位應用。
而安卓這邊,一直沒能下狠心動刀。
在2019年,谷歌曾就要求上架到Play Store的應用,除了提供32位版本外,還必須提供64位版本,到了2021年,宣布不再允許64位設備下載32位應用,但依舊“心軟”沒說強行禁止,而是可以兼容使用,甚至在自家Chrome瀏覽器的下載頁面也提供32位選擇。
圖源于網路
究其緣由可能還是開發、運維成本的問題,如果開發者只開發32位應用,那么應用完全可以運行在64位處理器上的,但如果開發64位應用,那么一些舊機型就無法運行,后續的維護成本也是問題,所以很多開發者只能選擇損失運行效率來保住“飯碗”。直到2021年,ARM終于宣布,從2023年開始,Arm架構CPU內核將強制采用64位,且沒有32位兼容模式。可能正是基于這個原因,各大手機廠商們也開始積極響應。
華為開發者聯盟的郵件稱,華為應用市場到2022年9月1日之前將分階段淘汰32位應用,目的是為了更好地提升應用性能體驗、降低應用的功耗影響。
隨后,移動智能終端生態聯盟宣布,從2022年4月起,在聯盟成員OPPO、vivo、 小米應用商店新上架應用不允許單獨上架32位應用包,必須要提供64位版本的安裝包。
圖源:微博@移動智能終端生態聯盟
隨著政策的頒布,強制不支持32位可能暫時會對部分應用和用戶體驗上造成影響,但從長期來看,這絕對是一件好事。
一方面,32位應用運行在64位處理器上,性能可能無法完全得不到發揮,反而會造成前面說的卡頓、增加功耗等問題,只有升級到64位才能緩解這些問題。另一方面,由于32位應用可能無法做到按照新的指南實時更新,一些新功能就無法正常使用,同時安全性也無從保障。
3.寫在最后
現在應用的安裝包越來越大,所消耗的內存、運存也越來越多,同時對于系統和處理器的性能要求也越來越高。采用64位處理器可以保證在處理視頻、游戲、解碼等操作下,更充分的調動移動設備的性能,減少不必要的效能損耗。同時不再支持32位也可以保證軟件的流暢運行。無論從哪個方面來說,對于用戶的影響都是積極地。但即便是政策出臺和系統限制,也依舊無法解決安卓生態混亂的問題,歸根到底,還是需要一些更有力的措施,才能讓安卓生態良性健康的發展。
參考鏈接:
https://baijiahao.baidu.com/s?id=1729417473150023472&wfr=spider&for=pc
http://app.myzaker.com/news/article.php?pk=60c856858e9f0977a82fd340&f=zaker_live