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