為什麼蘋果手機運行內存小但不卡?

這實際上是一個技術問題,涉及到iOS與安卓兩個操作系統的設計原理。

為什麼蘋果手機運行內存小但不卡?

首先,安卓機上大內存,這是個中國特色,也就是說只有中國國內銷售的安卓機才會上這麼大的內存,海外版的安卓機主流內存基本和蘋果差不了太多。圖我就不貼了,大家可以自己去查一下,華為的P30,海外版的128G硬盤的型號只配4G或6G內存,而中國版的P30,64G硬盤的型號卻配上了8G內存;海外版的安卓機,128G硬盤配4G內存比比皆是,簡直不要太多,但在國內,你幾乎找不到一款128G硬盤配4G內存的安卓機。這樣乍一看好像我們得了便宜,可其實,這是國產安卓生態的無奈之舉。

先說國內安卓機為什麼上大內存吧。舉一個例子,比如我們常用的微信這個APP,首先你打開微信登錄賬號後,你手機上的微信APP就會和騰訊的服務器保持一個長久的連接,你發一條消息給你朋友,這條消息不是直接從你的手機上發到他的手機上的,而是你的手機將消息發給了騰訊的服務器,然後騰訊的服務器再發給你朋友。這個時候就有一個問題,如果你朋友手機上的微信APP處在關閉狀態下,那麼即使騰訊服務器把消息發過去了,他也收不到,因為他的手機上微信APP已經完全關閉了,已經和騰訊服務器斷開連接了,只有當他再次打開微信的時候,連接恢復,他才能收到那條信息。也就是說,想要及時收到消息,那麼微信這個APP就不能完全關閉,需要留下一些線程在後臺一直保持運行,一直和騰訊的服務器保持接連,這樣一旦收到消息,系統才能及時啟動消息機制提醒你。

為什麼蘋果手機運行內存小但不卡?

所以,國內安卓系統下,每一個APP,都必須在後臺(也就是內存裡)留下一些線程隨時準備接收外來信息,也就是說你剛打開手機還啥都沒幹,你手機上所有APP的一部分線程已經悄悄啟動,進駐內存,而這些後臺啟動的線程是無法關閉的,因為是合法的,關閉的話用戶就無法及時收到消息。另外,不要小看這些後臺線程的數量,一個APP在後臺裡留十幾二十MB確實不多,但100個APP(64G硬盤的手機就能裝100個APP)加起來就要吃掉將近2G的內存!

因此,國內安卓機的內存容量必須跟著硬盤容量遞增,硬盤容量越大,能下的APP就越多,就越需要更大的內存來保證這些APP留在後臺的線程正常運行。

再說iOS,它為啥就不需要大內存呢?因為蘋果有自己的服務器(谷歌實際上也有自己的服務器,但國內不能用,下面會說)。iOS的這個系統,必須搭配蘋果公司的服務器才能正常運行。每一臺iOS設備在聯網的時候,iOS系統首先會和蘋果的服務器建立一個長連接。

還是微信那個例子,在iOS上,如果微信處在打開狀態下,那麼邏輯還是和上述安卓的一樣,差距是體現在關閉微信後。如果你iPhone上的微信APP關閉了,會和騰訊的服務器斷開,而這個時候,你朋友發了一條消息給你,這條消息先發給了騰訊的服務器,這時騰訊服務器發現你手機上的微信APP沒有和服務器建立連接,那麼它會將這條消息轉頭髮給蘋果的服務器,然後蘋果的服務器收到後會發送給你的iOS系統,系統收到就能及時做出提醒。這樣實際上是多了一個步驟,但帶來的好處是你手機上的微信APP可以完全關閉,不需要留下多餘的線程來接收消息,因為蘋果的服務器會一直保持接收消息,然後將消息發給手機系統,系統再做出提醒。

這樣一來,蘋果手機的內存就不需要跟著硬盤容量一起遞增,因為即使APP完全關閉,也不影響及時接收消息。再加上iOS系統實際上不支持真正意義上的後臺運行(僅持後臺聽歌、下載、導航等有限幾個操作,如果一個APP進入後臺,10分鐘內沒被換到前臺來,那麼系統就會將它關閉,只留下臨死前的一個截圖,所謂的墓碑機制),所以蘋果手機的這些內存絕大部分時間內其實只為一個APP(當前這個)服務,一個APP使用4G內存,真的是綽綽有餘,有餘到多的不能再多了。

插個題外話,都說蘋果手機安全,注重隱私,也有這個原因,蘋果手機上的APP,如果關閉了,那就是真的全部線程都關閉了;而安卓,由於每一個APP都必須在後臺留一些線程一直運行,有的無良APP甚至手機廠商,就不僅僅會留下接收消息的線程,還會留下偷偷開啟攝像頭或者麥克風的線程,去收集用戶數據,而這些後臺的的線程,由於是系統代碼層面的東西,用戶根本沒可能去關閉。

最後,說一下海外版安卓機為什麼也不上這麼大的內存,因為海外版安卓機可以使用谷歌的服務器(前段時間鬧的沸沸揚揚的安卓停止對華為授權事件,實際上就是谷歌不讓海外版華為連接谷歌的服務器了),而使用了谷歌的服務器,推送機制就變得和iOS一樣了,就不需要有APP自己的線程留在後臺了,谷歌的服務器會幫APP們接收信息。

而由於眾所周知的原因,國內安卓用戶是無法連接谷歌的服務器的,那麼,APP要想及時接收消息,開發者也只能使用常駐後臺這個方法,而讓APP線程常駐在後臺,需要大量的內存支持,那國內的安卓機就只好加大內存。那麼,誰來為這些多出來的內存買單呢?羊毛都出在羊身上,當然還是用戶,還是消費者。這就是我們國內安卓用戶的悲催之處,我們不僅要忍受隱私的洩露,還要為這樣的行為買單。

目前,國內的APP駐留後臺已經把國內的整個安卓生態搞的烏煙瘴氣、亂七八糟。其實好多大廠想過解決方案,比如小米推出自己的推送服務,華為也有自己的推送服務,但全都收效甚微。因為沒什麼開發者去配合他們,一來因為開發者適配的話需要一個廠一個廠去適配,提升了開發成本和維護成本,二來APP開發商也不願放棄常駐後臺帶來的利益。

目前比較值得期待的,是安卓推送聯盟,這個聯盟是由工信部牽頭的,運行機制和iOS的推送原理差不多,如果能全面鋪開,可以解決上述問題,但這一套現在還在測試階段,還是個美好的願望,日後能不能全面鋪開還是前途未卜。

所以,蘋果不上大內存,真不是廚子摳門,因為沒必要了,國內安卓機12G內存都打不過蘋果4G內存,為什麼?因為12G內存裡,很大一部分是留給國產APP常駐後臺用的。


分享到:


相關文章: