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

就是這樣。

來源:知乎

以上內容由"漲姿勢"上傳發布 查看原文
辽宁沈阳| 正定| 香港香港| 衢州| 莱芜| 陇南| 德阳| 常州| 仙桃| 自贡| 新余| 临沂| 连云港| 宁国| 日喀则| 娄底| 固原| 博尔塔拉| 金坛| 东台| 廊坊| 阳泉| 阿克苏| 和县| 大同| 兴安盟| 湖北武汉| 广饶| 平潭| 广元| 娄底| 厦门| 桐乡| 三亚| 临猗| 阳春| 攀枝花| 岳阳| 雄安新区| 泉州| 鹤壁| 台湾台湾| 朔州| 泗洪| 哈密| 吴忠| 十堰| 三明| 娄底| 乳山| 吴忠| 辽源| 万宁| 中山| 南平| 鞍山| 济南| 吉林| 南安| 商丘| 西双版纳| 周口| 芜湖| 白银| 山南| 白银| 白城| 巴彦淖尔市| 资阳| 锡林郭勒| 曹县| 通化| 苍南| 巴彦淖尔市| 海南| 顺德| 菏泽| 扬州| 姜堰| 白山| 福建福州| 呼伦贝尔| 哈密| 包头| 鹤岗| 海安| 石狮| 新乡| 义乌| 灵宝| 日土| 象山| 白银| 汕头| 清徐| 基隆| 沧州| 广州| 张家界| 乐平| 宜都| 定安| 信阳| 惠州| 白银| 淮北| 阳泉| 珠海| 海安| 云南昆明| 北海| 阿里| 五指山| 金坛| 牡丹江| 乌海| 鄂州| 承德| 金坛| 潜江| 和田| 内蒙古呼和浩特| 宣城| 三沙| 云浮| 海东| 西双版纳| 漳州| 海拉尔| 儋州| 益阳| 黑河| 桐乡| 永州| 济南| 衡水| 池州| 德宏| 万宁| 乌海| 恩施| 盐城| 大连| 滁州| 邯郸| 临夏| 武安| 长兴| 红河| 如东| 金昌| 大连| 岳阳| 威海| 本溪| 宜都| 诸城| 文山| 如东| 日照| 张掖| 宝应县| 福建福州| 汉中| 黄南| 大兴安岭| 德阳| 百色| 乳山| 陕西西安| 巴音郭楞| 普洱| 杞县| 海拉尔| 黄石| 衡水| 香港香港| 琼中| 株洲| 咸宁| 余姚| 齐齐哈尔| 迁安市| 阳泉| 东营| 启东| 邯郸| 厦门| 陕西西安| 广安| 三河| 佳木斯| 台山| 松原| 宿州| 晋中| 泉州| 武夷山| 松原| 岳阳| 青州| 和县| 海西| 通辽| 鸡西| 庄河| 玉溪| 白城| 景德镇| 喀什| 宣城| 丹东| 深圳| 平凉| 公主岭| 南平| 随州| 东阳| 和田| 新疆乌鲁木齐| 阿拉尔| 潮州| 澄迈| 惠东| 长治| 潍坊| 福建福州| 白城| 南京| 南京| 东台| 株洲| 项城| 汉中| 烟台| 博尔塔拉| 长葛| 六盘水| 乐山| 惠州| 七台河| 洛阳| 灌南| 芜湖| 衢州| 蓬莱| 恩施| 河北石家庄| 曹县| 茂名| 泸州| 新沂| 荆州| 杞县| 广西南宁| 贺州| 阳泉| 江西南昌| 海西| 白银| 黄南| 阿拉尔| 项城| 大庆| 商洛| 荣成| 象山| 大丰| 阿坝| 芜湖| 定安| 芜湖| 果洛| 丹东| 黑龙江哈尔滨| 乌兰察布| 临汾| 白城| 中山| 海南| 临猗| 禹州| 承德| 宁国| 济南| 长垣| 遵义| 东阳| 聊城| 怒江| 嘉峪关| 如皋| 鹤岗| 大连| 塔城| 北海| 白山| 葫芦岛| 鹰潭| 大理|