關于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 常駐后臺用的。

就是這樣。

來源:知乎

以上內容由"漲姿勢"上傳發布 查看原文
大理| 昌都| 海东| 大理| 贺州| 通化| 呼伦贝尔| 海南| 连云港| 金坛| 乌兰察布| 台北| 大庆| 宁波| 海丰| 南阳| 萍乡| 泰州| 枣阳| 荣成| 阜新| 海安| 迪庆| 遂宁| 天长| 遂宁| 屯昌| 玉树| 十堰| 阳春| 乌兰察布| 济源| 垦利| 玉环| 大连| 潍坊| 漯河| 果洛| 茂名| 常州| 海北| 湘西| 乐清| 公主岭| 武安| 营口| 济宁| 青海西宁| 泰兴| 简阳| 晋城| 和县| 铁岭| 遵义| 吉林长春| 简阳| 梧州| 承德| 益阳| 葫芦岛| 广饶| 防城港| 三河| 许昌| 江西南昌| 江西南昌| 泸州| 乐山| 喀什| 包头| 大理| 庄河| 五家渠| 迪庆| 三门峡| 浙江杭州| 普洱| 济宁| 天水| 咸阳| 黔东南| 保定| 灌南| 承德| 铜陵| 济源| 昌都| 宜都| 沧州| 曲靖| 石嘴山| 甘肃兰州| 滁州| 河北石家庄| 吴忠| 黄南| 阿拉尔| 吐鲁番| 雄安新区| 宁国| 吉安| 济源| 眉山| 莒县| 偃师| 自贡| 定州| 武夷山| 蚌埠| 鞍山| 襄阳| 遵义| 基隆| 日照| 宜春| 漳州| 武夷山| 承德| 防城港| 济南| 汉川| 鹤壁| 沛县| 延安| 绵阳| 瓦房店| 涿州| 无锡| 海西| 龙岩| 青州| 遂宁| 延安| 常德| 乌海| 任丘| 滁州| 随州| 克拉玛依| 招远| 厦门| 辽阳| 曹县| 深圳| 萍乡| 鸡西| 招远| 启东| 高雄| 平凉| 芜湖| 东台| 吐鲁番| 舟山| 章丘| 吉林| 喀什| 海北| 鹰潭| 聊城| 台中| 阳江| 石河子| 五指山| 荣成| 海拉尔| 鹤壁| 辽阳| 铜仁| 海拉尔| 贺州| 宜都| 黄南| 雅安| 淄博| 青州| 河源| 高雄| 肇庆| 日照| 淄博| 武安| 阳江| 阿勒泰| 安庆| 毕节| 安庆| 楚雄| 宁波| 张家界| 五家渠| 大丰| 巴音郭楞| 三亚| 贺州| 潜江| 义乌| 昆山| 杞县| 浙江杭州| 鄂尔多斯| 招远| 巴音郭楞| 运城| 通化| 扬中| 东方| 毕节| 台南| 泰兴| 九江| 招远| 昌都| 陕西西安| 内江| 淄博| 台南| 七台河| 武安| 章丘| 张家界| 丹东| 泰安| 霍邱| 保山| 淮南| 河源| 内蒙古呼和浩特| 怀化| 海北| 山西太原| 库尔勒| 自贡| 南平| 恩施| 屯昌| 赵县| 四川成都| 泉州| 厦门| 开封| 四平| 惠州| 日照| 威海| 厦门| 巴彦淖尔市| 台湾台湾| 宣城| 咸宁| 青海西宁| 莆田| 湖南长沙| 湖州| 伊犁| 锡林郭勒| 汝州| 咸宁| 黄石| 潍坊| 三河| 韶关| 甘肃兰州| 包头| 石嘴山| 青州| 漳州| 博尔塔拉| 南充| 吐鲁番| 泰兴| 信阳| 明港| 德宏| 海拉尔| 芜湖| 大连| 舟山| 安庆| 齐齐哈尔| 漯河| 绍兴| 仁怀| 七台河| 海南海口| 广元| 惠州| 汉中| 灌云| 广西南宁| 仙桃| 枣阳| 荆门| 桂林| 延安| 朔州| 兴安盟| 定西| 甘孜| 山东青岛|