Android為何比iOS卡?論1G記憶體的使用

donews發表於2015-01-05

昨天,一位認證資訊為小米員工的網友在微博上發言,“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 記憶體大家都會變得一樣卡了呢?

相關文章