李進(jìn)才
相信很多朋友已經(jīng)購買到了最新一代CPU平臺(tái)的安卓機(jī)了。這代安卓機(jī)的CPU發(fā)生了劇變,在保持了大中小核架構(gòu)的同時(shí),對(duì)大核和小核的微架構(gòu)都進(jìn)行了大改。小核心的微架構(gòu)進(jìn)化,應(yīng)該是大家期盼已久的了,“祖?zhèn)鞯摹盋ortex-A55終于退休,按理來說全新的Cortex-A510應(yīng)該會(huì)帶來更好的能效。但是有人發(fā)現(xiàn),這代安卓機(jī)似乎更加耗電了,這是為何?今天就簡單談?wù)劙沧繎?yīng)用64位普及遲滯導(dǎo)致的耗電問題吧。
當(dāng)前上市的最新一代安卓機(jī)所使用的高通驍龍8gen1處理器,以及即將上市的聯(lián)發(fā)科天璣9000處理器,都屬于最新設(shè)計(jì)的基于ARMv9架構(gòu)的產(chǎn)品。它們都有一個(gè)共同的特點(diǎn),就是文章開頭所說的對(duì)大核和小核微架構(gòu)進(jìn)行了大改,大核心使用了Cortex-X2微架構(gòu),而小核心則使用了Cortex-A510微架構(gòu)。
無論是Cortex-X2還是Cortex-A510,它們都有一個(gè)共同的特點(diǎn),那就是不再支持32位,如果安卓機(jī)要運(yùn)行32位的應(yīng)用,就必須在微架構(gòu)只做了小幅調(diào)整的Cortex-A710中運(yùn)行。如此一來,在某些場景中,就有可能導(dǎo)致額外的能耗。
在理想的情況下,安卓機(jī)在待機(jī)或者低負(fù)載時(shí),應(yīng)用程序主要運(yùn)行在小核心上,小核心的能效比最出色,如此一來就能達(dá)到節(jié)電的效果;但如今,如果App是32位的,在新的ARM處理器中,就只能由中核運(yùn)行,小核的能效優(yōu)勢(shì)只能干瞪眼,額外耗電的情況就出現(xiàn)了。
換言之,在使用了新一代CPU的安卓機(jī)中,如果運(yùn)行32位的App,是無法達(dá)到理想的能效比的。這個(gè)問題和芯片工藝無關(guān)、和系統(tǒng)無關(guān),就是安卓生態(tài)和新處理器架構(gòu)不匹配所導(dǎo)致的。
只有64位的安卓App,才能運(yùn)行在新ARM處理器的小核心上,才能讓新ARM處理器發(fā)揮出應(yīng)有的能效。因此,何時(shí)普及64位的安卓App,就成為了新一代ARM處理器何時(shí)能更節(jié)電問題的答案。
當(dāng)前安卓生態(tài)中32位的應(yīng)用仍大量存在,這些應(yīng)用不乏大家常見的裝機(jī)必備,例如《嗶哩嗶哩》《百度網(wǎng)盤》《愛奇藝》等。這種情況是否正常?從技術(shù)的角度來看,似乎很不應(yīng)該。
從ARMv8開始,安卓陣營的CPU就已經(jīng)普遍支持64位,安卓系統(tǒng)也在Android 5.0后,從系統(tǒng)層面支持64位應(yīng)用?;贏RMv8的驍龍810以及Android 5.0都出現(xiàn)于2014年,轉(zhuǎn)眼快10年過去了,為何安卓App仍大量停留在32位?
我們可以對(duì)比一下蘋果陣營。2013年的iPhone 5S以及 iOS 7開始推行64位,一年多后32位的iOS應(yīng)用就已經(jīng)難尋蹤跡。安卓推行64位為何如此艱難?這和安卓生態(tài)的實(shí)際情況是有很大關(guān)聯(lián)。盡管在ARMv8后,安卓陣營的CPU增加了64位的支持,但依然保留了32位的兼容。甚至,前一代產(chǎn)品ARM v8.2處理器,也依然耗費(fèi)額外的晶體管,來兼容32位App。同時(shí),安卓系統(tǒng)也一直兼容32位App,App并沒有切換到64位的迫切需求。這一切的考量,很大程度是基于對(duì)舊設(shè)備的兼容。
在安卓初推行64位的時(shí)候,市場上依然有大量運(yùn)行舊CPU以及舊版安卓系統(tǒng)的設(shè)備存在。安卓在市場攻城略地的秘訣,在于開放和兼容,如果對(duì)32位一刀切,那么安卓陣營會(huì)無可避免迎來分裂。實(shí)際上,開放的系統(tǒng)都存在這樣的問題,例如Windows生態(tài)為了保持向后兼容,時(shí)至今日仍對(duì)32位應(yīng)用軟件提供出色的兼容,這和安卓是殊途同歸的。
當(dāng)然,和Windows不同,安卓并不需要承擔(dān)太多的生產(chǎn)力任務(wù)。在初次推行64位過去近10年后,安卓也的確到了全面拋棄32位包裹的時(shí)機(jī)。
安卓放棄對(duì)32位兼容可以帶來什么好處?首先,CPU就可以省下用于兼容32位的晶體管,對(duì)于寸土寸金的芯片來說這顯得尤為有價(jià)值;其次,App可以擁有更好的內(nèi)存利用率,對(duì)于日漸膨脹的應(yīng)用游戲來說這是至關(guān)重要的;再者,App還可以更有效利用CPU的寄存器,帶來更高的效率。
在安卓App日漸復(fù)雜、摩爾定律日漸失效的今天,摒棄歷史包裹、全面擁抱64位的時(shí)機(jī)的確已經(jīng)到來。雖然目前安卓生態(tài)仍存在大量32位App,但也可以看到多方對(duì)普及64位的努力。
例如,Google要求,從2019年8月1日起,在Google Play發(fā)布的應(yīng)用必須支持64位。也因?yàn)榇耍瑖獾陌沧可鷳B(tài)對(duì)于64位的普及要比國內(nèi)做得更好,這次安卓CPU平臺(tái)換代,國內(nèi)的安卓機(jī)耗電問題也要比國外更明顯。
又例如,國內(nèi)的安卓分發(fā)渠道也開始要求App支持64位。OPPO商店此前已經(jīng)規(guī)定,2021年12月底后,新發(fā)布的應(yīng)用必須支持64位;而小米商店則提供了一鍵將32位App置換為64位的功能,如果手機(jī)上已安裝的32位App在商店中有64位版本,可以一鍵更新。
同時(shí),國內(nèi)的很多App在近期也都更新到了64位,例如《微信》、QQ、12306等。相信在不久后的將來,國內(nèi)的安卓App很快會(huì)大面積普及64位,新一代的安卓機(jī)也會(huì)發(fā)揮出應(yīng)有的能效。
毫無疑問,和蘋果相比,安卓的64位普及進(jìn)程是落后的,安卓陣營并沒有蘋果那樣絕對(duì)的應(yīng)用發(fā)行渠道壟斷權(quán),這也是安卓借開放之風(fēng)騰飛所需要付出的代價(jià)。幸運(yùn)的是,目前安卓陣營各方都已經(jīng)意識(shí)到了普及64位的重要性,下一代安卓CPU會(huì)進(jìn)一步拋棄對(duì)32位的支持嗎?讓我們拭目以待。