余覺得,碼農
這現實上是一個手藝問題,涉及到 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 常駐后臺用的。
就是這樣。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!