天天看點

2022年,安卓手機為什麼要全面普及64位應用?

2021年底,國内安卓五大應用商店,共同宣布了将會推進國内安卓生态對于64位應用的支援。從這五大廠商釋出的聯合倡議來看,隻要在OPPO、vivo、小米、騰訊應用助手、百度手機助手上傳或者更新APP,都需要在21年12月底前上傳64位格式,不再接受32位的APK,而後者更是在2023年直接無法在支援64位系統上運作。

2022年,安卓手機為什麼要全面普及64位應用?

而華為則通過華為開發者聯盟郵件通知所有開發者,華為将會分階段淘汰32位應用,并全面推行64位版本:

2022年2月1日起,在華為應用市場新上架/更新的遊戲及應用,必須包含 64 位版本,華為應用市場不再接收僅包含 32 位版本的應用;9月1日起,華為應用市場将不再接收包含 32 位版本的應用。

2022年,安卓手機為什麼要全面普及64位應用?

華為開發者郵件 圖檔來自網絡

讓手機終端廠商這樣“迫在眉睫”的推廣64位應用最主要的原因是來自上遊供應鍊的壓力。比如之前ARM就宣布,将會從2022年開始,旗下晶片産品之中CPU的Cortex大核将取消對32位的支援,這是上遊廠商在“逼”下遊廠商全面支援64位應用。

安卓的64位之路并不順利

關注手機硬體的使用者應該知道,其實早在Android 5.0系統釋出時,就已經支援64位應用,當時處理器為高通骁龍410,這也是高通首款支援64位的處理器,時間為2013年,而到2022年才“強制”實作到64位,這與谷歌在2019年要求開發者在google商店中送出64位應用整整推遲了3年。

雖然當時谷歌已經通過內建最新開發工具Android Studio,來打開的APP直接預設為64位so檔案,想以這種“強制”性的新規來限制開發者。但這樣做似乎并沒有引起足夠的重視,開發者依舊可以通過修改Android Studio的配置檔案使得其在打包so檔案時可以使用32位來“繞過”,國際環境如此,國内安卓生态環境就不一樣了。

2022年,安卓手機為什麼要全面普及64位應用?

Play商店、應用彙更新的APP都不同

不僅手機廠商有自己的官方軟體商店,還有像百度軟體管家、酷安、騰訊手機助手等等這樣的第三方市場。如果手機中安裝了非手機市場的官方版,可能還會在多個商店的版本之間“反複橫跳”,就更别提64位适配了,能裝個純淨的官方應用都不是一件容易的事情。

總之,官方、非官方、固件版本混亂是安裝軟體生态的通病。

其實到2021年,高通8 Gen 1和聯發科9000處理器出來之前,都缺乏一套行之有效的方式來從“根兒上”解決這個問題。

剩下的就隻有從“底層”杜絕這個情況,用硬體生态來進行“管控”。比如高通、聯發科于去年年底釋出的骁龍8 Gen 1和天玑9000,除了具有非常強勁的性能提升這個大衆可以“感覺”的部分:整個架構更新到了ARM最新一代Cortex-X2超大核、Cortex-A710大核和Cortex-A510小核架構外,最大變化是更為底層的“提升”,即指令集就采用了ARM V9。

ARM V9和上一代V8一樣,都為純64位指令集,Cortex-X2超大核與Cortex-A510小核隻支援(向下相容V8)64位,隻有“中核”Cortex-A710大核相容32位的V7指令集。

2022年,安卓手機為什麼要全面普及64位應用?

換句話來講,如果這款軟體還是32位的,那麼運作在骁龍8 Gen 1和天玑9000這類V9指令集的新架構處理器新機上,就隻能被鎖定在A710上運作,這樣手機不管是鎖屏還是打開“性能模式”運作,應用始終都處在A710這個比上超級大核性能不足,比下小核也不省電的核心上。

64位到底有啥提升?

最直接的優勢,就是能從數字上直接看出來,即64位處理器性能要更強,vivo曾經表示“支援 64 位裝置是安卓應用程式利用超過 4GB RAM 位址空間、在資料進行中利用更寬寄存器和更高精度,以及擷取強化安全特性的唯一途徑。”

在相同頻率下,64位處理器可以處理8位元組資料,而32位隻能處理4位元組資料,處理資料更快,此外在尋址空間上也有非常大差距,例如32位尋址空間為2的32次方,大約支援4GB,而64位是指數級别增長,為2的64次方,并支援動态記憶體配置設定。

總而言之,64位處理器、支援64位應用系統以及64位應用共同協作,這軟體上的性能“三架馬車”并駕齊驅,才能讓運作效率得到提升。

2022年,安卓手機為什麼要全面普及64位應用?

既然64位應用能夠帶來性能提升,那為什麼普及來就如此費勁?

除了前面提到的軟體版本、下載下傳管道混亂外,一大原因是安卓對于“舊裝置”的相容性非常好,比如雖然谷歌通過各項措施來讓開發者推出64位的應用,但仍然保留了對于32位應用的相容,甚至在自家Chrome浏覽器的下載下傳頁面也提供32位選擇.

另外對于開發者而言,維護營運成本也是制約64位普及的“絆腳石”,例如開發者如果隻開發32位應用,它是完全可以運作在64位處理器上的,隻不過不能以最佳狀态運作而已。

但如果隻開發64位應用,對于一些舊裝置來講就根本無法運作,有流失使用者風險。而32位和64位開發測試需要獨立進行,對後續維護成本也是一種負擔。

此外還有重要一點,開發者開發安卓類應用并不會單純使用純粹的Java層開發,而是利用Android NDK來讓Java與C++結合,而在C++中基本都是團隊運作,這對于小團隊開發者而言,維護和後續安全性都是問題。

2022年了,安卓的64位裝置和APP發展的怎麼樣?

既然聯合倡議已經公布,安卓手機廠商執行的怎麼樣?

根據友盟+ U-APM的資料顯示,截止到2021年12月,市面上64位和32位裝置所占比例為65%和35%,而根據友盟+ U-APM的移動應用性能監控平台顯示,32位裝置的應用崩潰現象是64位裝置的4.8倍,不論是裝置所占比還是穩定性,64位應用都是趨勢。

2022年,安卓手機為什麼要全面普及64位應用?

而就目前手機終端裝置内置的官方應用商店也好,第三方應用市場也罷,華為、OPPO應用商店都不會直接辨別出更新後的應用是否為64位,隻有小米在應用商店會清晰地辨別出哪款軟體在更新時為64位。

2022年,安卓手機為什麼要全面普及64位應用?
2022年,安卓手機為什麼要全面普及64位應用?

左邊為vivo應用商店 右側為華為應用商店 都沒有标注64位APP

例如我用的華為手機就需要借助第三方程式LibChecker來查詢機内應用,目前機内應用數量為312個,大約有66%的應用為64位,29%的應用為32位。

2022年,安卓手機為什麼要全面普及64位應用?

LibChecker查詢64位軟體基本上都是google系和國際APP 32位則為國産軟體居多 手機為Mate 40 Pro EMUI 11版本

但安卓應用更新到64位後,也并不意味着會比32位好用,據知乎網友嗜金水狙反應,在Play商店中的QQ雖然是64位版,但有嚴重bug無法使用,也沒有夜間模式,沒有簡潔模式。

2022年,安卓手機為什麼要全面普及64位應用?

圖檔來自知乎網友嗜金水狙

而Play商店中的QQ音樂老版本為64位,新版本又更新回32位。

2022年,安卓手機為什麼要全面普及64位應用?

左側小米12 Pro百度地圖為64位 右側為32位 打開速度沒有明顯變化

安卓的開放軟體生态系統,直接導緻了軟體部分的碎片化,想統一并非易事。

此外,從現在安卓軟體來看,目前的安裝包體積越來越大,這就直接導緻安裝時需要消耗的記憶體、運作時占用的系統資源以及對于系統的性能要求也越來越高。采用64位系統可以讓單線程處理超過4GB運作記憶體,這對于處理一些超大型遊戲、高碼率高規格的視訊檔案來講,可以更充分的調動手機内硬體,讓機内硬體得到充分發揮。

這就可以解釋,為什麼智能手機運作記憶體越來越高,動辄高達12、16GB,處理器頻率也越來越高。這一切都是保證64位軟體可以流暢運作,但這也帶來一些負面因素,比如功耗問題以及超大核處理大型軟體帶來的發熱等等。

總之,2022年或許會成為安卓大規模普及64位應用的“元年”,硬體倒逼軟體更新将是常态,不過歸根到底,還是需要行之有效又不一刀切的舉措,才能讓安卓生态良性健康發展。

繼續閱讀