關于ZAKER 融媒體解決方案 合作 加入

iPhone 為什么不加大內存?

漲姿勢 14小時前 16

Android 現在上到 12GB 內存(RAM)了,是 iPhone 6s 的 6 倍,蘋果如果上 8GB 那不是一點都不會卡?還是這樣慢慢升級讓大家買新的?防止用戶萬年不換機?

iPhone 提升內存是否會進一步提升其易用性?如果會,那么 iPhone 為什么不加大內存?蘋果這樣的公司還能走多遠?

作者:余以為

這實際上是一個技術問題,涉及到 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 常駐后臺用的。

就是這樣。

來源:知乎

以上內容由"漲姿勢"上傳發布 查看原文
黔西南| 澄迈| 河源| 曲靖| 清徐| 义乌| 池州| 灵宝| 荆门| 阿拉尔| 无锡| 天门| 陇南| 双鸭山| 苍南| 武夷山| 阿拉尔| 巢湖| 通辽| 赵县| 遂宁| 五家渠| 临海| 莱州| 宝应县| 简阳| 余姚| 娄底| 单县| 黔南| 襄阳| 金昌| 海丰| 广元| 湖州| 清远| 桓台| 呼伦贝尔| 金昌| 梧州| 阜阳| 包头| 晋江| 和田| 神木| 东营| 惠东| 寿光| 常德| 兴化| 滁州| 靖江| 项城| 克孜勒苏| 张家界| 无锡| 万宁| 图木舒克| 潜江| 台北| 深圳| 大理| 柳州| 邳州| 台州| 锦州| 玉溪| 广汉| 嘉善| 台州| 连云港| 台州| 龙岩| 金昌| 贺州| 中卫| 吕梁| 延边| 济南| 黔东南| 崇左| 洛阳| 林芝| 吴忠| 毕节| 泗洪| 新余| 丹阳| 台湾台湾| 晋城| 永州| 临沧| 仙桃| 喀什| 深圳| 南平| 启东| 简阳| 内蒙古呼和浩特| 文昌| 南安| 黄冈| 舟山| 包头| 榆林| 淮北| 眉山| 珠海| 乐清| 盐城| 北海| 黄冈| 泰安| 滁州| 芜湖| 宜宾| 海安| 正定| 禹州| 和田| 宿州| 博罗| 双鸭山| 陇南| 汉中| 肥城| 图木舒克| 景德镇| 嘉善| 梧州| 邹城| 赵县| 东营| 宿迁| 绥化| 三沙| 邹平| 东莞| 昆山| 大同| 宣城| 吉安| 天水| 鸡西| 长垣| 双鸭山| 清徐| 孝感| 洛阳| 德州| 金坛| 和县| 巴中| 新乡| 海西| 伊春| 张掖| 河北石家庄| 贺州| 凉山| 宝应县| 乌兰察布| 霍邱| 延安| 衢州| 安阳| 阿克苏| 清徐| 三沙| 亳州| 江西南昌| 如东| 象山| 乐清| 汕头| 庄河| 灌南| 德清| 桓台| 安康| 安阳| 云南昆明| 泉州| 莱芜| 贺州| 铜仁| 日照| 乌兰察布| 四平| 鹤壁| 烟台| 庄河| 松原| 广饶| 湖北武汉| 慈溪| 朝阳| 海西| 海南海口| 南阳| 醴陵| 固原| 大庆| 吴忠| 河源| 柳州| 舟山| 莆田| 瓦房店| 毕节| 株洲| 德阳| 龙岩| 通辽| 梅州| 深圳| 莱州| 镇江| 佳木斯| 固原| 德州| 明港| 邳州| 哈密| 德清| 博尔塔拉| 阳江| 余姚| 莆田| 淮南| 淮南| 绵阳| 鹤岗| 平凉| 台南| 金坛| 宁德| 来宾| 玉环| 广安| 揭阳| 三亚| 文山| 乐山| 明港| 清徐| 葫芦岛| 高雄| 项城| 牡丹江| 吉林长春| 鄢陵| 南平| 曹县| 开封| 秦皇岛| 伊春| 启东| 商丘| 改则| 河源| 如皋| 禹州| 保定| 巴彦淖尔市| 滨州| 南通| 盘锦| 昆山| 榆林| 陕西西安| 兴安盟| 开封| 图木舒克| 昌吉| 湖州| 中卫| 石狮| 铜川| 滁州| 台中| 顺德| 安康| 大理| 湖南长沙| 莒县| 松原| 湘潭| 鄂州| 厦门| 洛阳| 沧州| 芜湖| 三门峡| 大连| 德清| 如皋| 十堰| 安庆| 曲靖|