Android為何比iOS卡?論1G記憶體的使用
昨天,一位認證資訊為小米員工的網友在微博上發言,“iPhone 6 使用者都不在意 1G 記憶體不夠,紅米 2 的 1G 記憶體夠用了,保持流暢的祕訣就是少裝 App.”後來的事情大家知道了。
要保持安卓手機流暢,少裝 App 確實有用,不過 iPhone 6 是否流暢和少裝 App 卻沒有半個F碼的關係。
iOS 8 讓人們第一次發現原來蘋果也會卡頓,而與之相比,Android 卡 Sh1t 卻早已名聲在外。
Google 在推出 4.4 時發明了 ART (Android runtime)來解決卡慢, 5.0 時又用 ART 徹底取代 Dalvik,號稱實現高效、省電、流暢的 Android 系統目標已經實現。
安卓機真的能不再卡頓了嗎?一切還得從根源說起!
四大先天因素埋下卡頓根源
第一、基因使然。
iOS 只需要保證在蘋果僅限的幾款移動裝置上的執行體驗,而 Android 則需要保證能相容儘量多的已存在和未存在的不同硬體組合。
iOS 老祖,UNIX 之父 Ken Thompson
Android 老祖,Linux 之父 Linus Torvalds
iOS 基於 Apple 的 OSX,而 OSX 基於 FreeBSD ,FreeBSD 又是在 UNIX 上衍生的,其根源可以追溯到 1969 年 AT
Android 基於 Linux,起源於 1991 年 Linus Torvalds 的一個簡單需求。
其實從起源之處就能看出未來命運的註定不同:
UNIX 是與硬體配套的商業軟體,而 Linux 則是可執行在多種硬體上免費自由的開源系統。
一個為指定硬體定製優化的系統與一個要在上萬種奇葩配置上跑起來的系統相比,結果會如何?
第二、響應機制。
iOS 最先響應螢幕反應,而 Android 響應螢幕排在應用與框架之後。
iOS 響應順序依次為 Touch——Media——Service——Core 架構,當使用者只要觸控接觸了螢幕之後,系統就會最優先去處理螢幕顯示也就是 Touch 這個層級,然後才是媒體(Media),服務(Service)以及 Core 架構。
Android 的優先順序響應級別則是 Application——Framework——Library——Kernal 架構,和顯示相關的圖形影像處理這一部分屬於 Library,當你對螢幕操作之後,Android 系統首先會啟用應用、框架,然後才是螢幕最後是核心架構。
第三、開發語言。
iOS 採用執行效率極高的 Objective-C 語言,而 Android 採用的 Java 語言因為虛擬機器的存在,二次轉化再執行效率很低。
Android 開發是基於 Java“Write once, run anywhere”理念,正因為這個理念,引入了虛擬機器,也就是說編碼實際上需要“轉換”才能最終以使用者可看的程式跑起來。
第四、後臺管理方式。
iOS 中的後臺程式並不是指當前後臺執行程式,其實是你最近使用過的程式使用記錄,比如瀏覽器的網頁瀏覽記錄。
Android 的後臺則是一直在記憶體中執行,程式在程式活動停止後都會保留在記憶體中,直到系統需要更多記憶體再釋放這部分資源。
這個後臺管理機制造成使用者感知的差異化放大,Android 旗艦已進入 8 核 CPU、3G RAM 的級別,而 iOS 卻只需要雙核 1G 就能保持穩定流暢的頭銜不動搖。
三大後天因素拉低使用者體驗
其實 Android 與 iOS 相比,除了四大先天不同所造成的差距外,還有三大後天因素讓 Android 的體驗越來越不盡如人意。
1、無序的開發者;
Android 的開放與自由帶來了大量的開發者,也讓一部分不遵守規範的開發者進入 Android 的世界,於是應用開始肆意揮霍硬體資源,不少程式都開始自動啟動。
當你安裝了不少的應用之後就會發現,這些應用都開始駐留後臺。殺掉這些應用的程式無助於解決問題(因為他們會自動重新啟動,不斷地殺程式會造成他們不斷重啟,最終耗光你的電池),最後你只能徹底刪除他們。
因為這個刪除的使用者需求,一款叫做 Clean Master 的應用還帶動了獵豹移動的上市。
2、無奈的 Android Market;
由於一些讓人無奈的原因,各種水平不齊、魚龍混炸的第三方市場充斥於市。而即使在官方的 Google Play 也經常爆出惡意軟體或者仿冒軟體。混亂的市場和不守序的開發者讓 Android 的應用環境進入一個越來越差的死迴圈。
3、無解的碎片化。
100 個 Android 手機制造商從 Google 那拿到 Android 程式碼之後,就可以製造出 100 種搭載不同硬體平臺、介面的 Android 手機,即使是搭載完全相同的硬體,不同品牌的機器,執行速度,軟體相容性都會有區別,這就是 Android 開放帶來的碎片化。
就這樣,無論在先天還是後天上 Android 都註定著一些越來越卡,曾經的 4.4 沒能解決,5.0 也不會解決。
那麼 Android 5.0 Lollipop 若是沒能解決卡頓,又到底改變了什麼?
1、改變了執行環境,卻沒改變執行秩序。
ART 帶來的體驗明顯提升,告別了虛擬機器的 Android 更快更省電,不過對於一些不遵守規則的應用而言什麼都沒變,還是想怎麼折騰就怎麼折騰。
2、加劇了本已嚴重的碎片化。
Lollipop 的推出讓很多 Android 使用者歡呼了一陣,幾個月過去後他們發現真相,自己的手機連 4.4 的官方更新都還沒收到。於是大家就都明白了將希望寄託在新版系統身上,還真不如刷個 CM 或者 MIUI 包。
所以 Android 的卡頓其實從根源上就註定了沒有辦法解決,除非 Google 願意放棄現有市場全部推倒重來,不過那樣的系統和 Android 已經沒有任何關係了吧?
其實 Android 粉絲們不必過分擔憂卡頓,iOS 粉絲也不必慶幸流暢,畢竟庫克的 iOS 8 已經開始砸金字招牌,說不定到了 iOS 10 與 Android 7.0 釋出,大家都會變得一樣,沒個十核 CPU 加上 8G 記憶體大家都會變得一樣卡了呢?
相關文章
- Android中使用Handler為何造成記憶體洩漏?Android記憶體
- 為何記憶體被全部吃光記憶體
- 反射記憶體卡的使用場景反射記憶體
- 查詢windows記憶體卡槽及卡槽支援的最大記憶體Windows記憶體
- iOS中的圖片使用方式、記憶體對比和最佳實踐iOS記憶體
- 使用記憶體的百分比記憶體
- 如何使用天津拓航科技反射記憶體卡反射記憶體
- MongoDB 如何使用記憶體?為什麼記憶體滿了?MongoDB記憶體
- MongoDB如何使用記憶體?為什麼記憶體滿了?MongoDB記憶體
- 普通磁碟與LSI快閃記憶體卡測試對比記憶體
- Android記憶體分配/回收的一個問題-為什麼記憶體使用很少的時候也GCAndroid記憶體GC
- GE 反射記憶體卡的特點反射記憶體
- iOS 記憶體管理iOS記憶體
- iOS 中的記憶體管理iOS記憶體
- 理解 iOS 的記憶體管理iOS記憶體
- 為什麼暫存器比記憶體快?記憶體
- iOS記憶體管理佈局及管理方案-理論篇iOS記憶體
- PCI-5565系列反射記憶體卡 反射記憶體交換機反射記憶體
- 快閃記憶體卡型別記憶體型別
- 反射記憶體卡原理說明反射記憶體
- iOS 使用Instruments優化記憶體效能iOS優化記憶體
- 反射記憶體卡驅動的安裝反射記憶體
- iOS使用頻率最高的四種記憶體管理iOS記憶體
- 記憶體使用總結篇 -- Android 記憶體優化第五彈記憶體Android優化
- 遊戲記憶體對比普通記憶體區別 遊戲記憶體和普通記憶體相差大嗎?遊戲記憶體
- “理解”iOS記憶體管理iOS記憶體
- iOS 記憶體管理MRCiOS記憶體
- iOS 記憶體管理研究iOS記憶體
- 探索iOS記憶體分配iOS記憶體
- iOS記憶體淺談iOS記憶體
- iOS arc 記憶體管理iOS記憶體
- iOS另類的記憶體管理iOS記憶體
- Android記憶體洩露分析以及工具的使用Android記憶體洩露
- 記憶體洩漏與記憶體溢位神比較記憶體溢位
- 反射記憶體卡的優勢與特點反射記憶體
- 許多卡 - 告別實體會員卡 #iOS #AndroidiOSAndroid
- Android Media(多媒體)獲取手機記憶體卡下的音樂並播放Android記憶體
- 如何「偷」Android 的記憶體?Android記憶體