對于許多安卓手機的用戶來說,手機用著用著就變得越來越慢似乎是一個正常的現(xiàn)象,但是要知道,對于蘋果手機用戶來說,這個問題要小得多。那么到底是那些原因,使得我們手中的安卓手機越來越卡,越來越慢?這里就讓我們來一起詳細了解一下吧!
[ 手機慢安卓系統(tǒng)怎么辦 教你幾招讓手機跑得更快 ]
根據(jù)第三方的調研數(shù)據(jù)顯示,有 77% 的 Android 手機用戶承認自己曾遭遇過手機變慢的影響,百度搜索“Android+ 卡慢”,也有超過 460 萬條結果。在業(yè)內,Android 手機一直有著“越用越慢”的口碑,這個現(xiàn)象甚至超出了硬件范疇——很多中高端 Android 手機在硬件參數(shù)上都優(yōu)于同一代 iPhone,但是它們仍然會在使用半年到一年的時間后進入“欠流暢”的狀態(tài)——這無疑是一件令人困擾的事情。
然而,若是要回答這個問題,我們需要追溯到上個世紀,去尋找智能手機的起源。
西方歷史及奇幻文學作品十分熱衷于表達“血統(tǒng)”的設定,其傳統(tǒng)文化認為血統(tǒng)可以決定天賦,并引出“命運是否被注定”的哲學思考。比如大家比較熟知的《哈利波特》系列,解構之后就不難發(fā)現(xiàn),這實際上是一部講述格蘭芬多與斯萊特林兩支血統(tǒng)及其傳人的廝殺史(哈利波特是格蘭芬多的后代,繼承了其勇氣,伏地魔是斯萊特林的后代,擁有著其野心),而無處不在的預言(一個終將殺死另一個),也貫徹了西方慣有的宿命論情結。
到了科技行業(yè),“血統(tǒng)”的定義被“基因”所取代,一個公司有著什么樣的基因,決定了它的擅長領域,這種評價也被廣泛接受,成為唯物時代獨樹一幟的唯心理念,并經(jīng)受住了事實考驗——當我們試圖解釋微軟失落于互聯(lián)網(wǎng)、Google 敗退于社交網(wǎng)絡、百度止步于電子商務的原因時,都會由衷的感慨“原來劇本早在多年以前就已經(jīng)寫好了”。
同樣,為什么 Android 手機的“卡慢”問題永遠比 iPhone 要更加嚴重,它的答案也從一開始就注定了。
1965 年,貝爾實驗室、通用電氣和麻省理工學院開始合作開發(fā)一套能夠兼顧易用性和強大性的操作系統(tǒng),經(jīng)過六年時間的通力協(xié)作,貝爾實驗室的一名軟件工程師 Ken Thompson 在休假期間完成了一個名為 Unix 的系統(tǒng)編寫,并最終成為貝爾實驗室的母公司、美國電信巨頭 AT&T的商業(yè)產(chǎn)品,并啟動了長達數(shù)十年的版權運作。盡管后來有著許多變種,但是從嚴格意義上來講,Unix 不是一個開源的操作系統(tǒng)。
1991 年,一個芬蘭的大學生、同時也是計算機黑客的 Linus Torvalds,他對 Unix 十分著迷,但是買不起運行 Unix 需要的工作站,所以他就嘗試自己以同樣的編程方式寫了一個名為 Linux 的操作系統(tǒng),并在自由軟件之父 Richard Stallman 的精神鼓舞之下,將 Linux 加入到了自由軟件基金(FSF)當中,允許所有人使用、拷貝、修改甚至銷售 Linux 系統(tǒng),同時承擔開源義務,禁止把 Linux 封閉化的企圖。
之所以要如此大費周章的講述 Unix 和 Linux 兩個操作系統(tǒng)的故事,是因為 iOS 和 Android,正是分別基于 Unix 和 Linux 而衍生出來的作品。也就是說,是 Unix 和 Linux 的兩種特性,造成了 iPhone 與 Android 手機在使用體驗上的巨大差異。
喬布斯曾經(jīng)邀請 Linux 的創(chuàng)始者 Linus Torvalds 到蘋果工作,放棄 Linux 的開源,協(xié)助開發(fā) Mac OS 封閉式的 Mach 內核,后者與喬布斯大吵一架之后明確表示拒絕。而從 Mac OS 開始,蘋果就將操作系統(tǒng)的私有化視為企業(yè)戰(zhàn)略,用喬布斯的話來講,他是將 iOS 裝進了 iPhone 這個盒子里,然后賣給了用戶。所以,iPhone 之所以不會出現(xiàn)“越用越卡”的情況,是因為蘋果公司對它的手機從硬件到軟件擁有最高的管理權限,在封閉式的環(huán)境中,來自第三方的應用程序無法調用超過 iPhone 承受限度的指令,自然也不可能造成持續(xù)性的系統(tǒng)損傷。
反觀 Android 手機,由于開源的公開條件,Google 無法從代碼這一端口約束第三方的應用程序,同時,由于 Linux 核心設定應用在調取系統(tǒng)功能時一定要取得 ROOT 權限,這也導致大量應用因為單一功能的實現(xiàn)需求而獲得整個 ROOT 層面的支配,可以在 Android 手機的任意儲存位置進行讀寫,這種高自由度無異于開啟了潘多拉魔盒,讓 Android 手機無法對惡意 App 事先設防。這也是開源軟件備受爭議、且在商用領域遭到抵觸的原因:它只關心是否授予了用戶自由——這個自由也包括逾越邊界的自由——而沒有從最壞的出發(fā)點去考慮如何規(guī)避被濫用的風險。盡管 Google 作為巨頭,一直在嘗試對產(chǎn)業(yè)鏈進行統(tǒng)一管理,但是當這條產(chǎn)業(yè)鏈日益龐大、連 Google 也只能扮演其中之一的角色時,Android 的失控也就在情理之中了。比如,Android 的最新版本通常需要花費超過一年半的時間,才能使激活它的 Android 手機占比超過 50%,但是 iOS 7 只用了兩個月,就讓半數(shù)以上的 iPhone 都更新完畢。另外,一款應用程序如果被蘋果從 App Store 中懲罰出去,它就再也無法被安裝到任何一款合法的 iPhone 里面,但是如果一款應用程序被 Google 驅逐出 Google Play,但是它還是可以登錄各種第三方應用市場,提供正常的下載和安裝。
所以,Android 的這種天生短板,又催生出了一個“手機調!钡氖袌,并帶動了新的產(chǎn)業(yè)鏈。
“手機調!钡牡谝患,在于系統(tǒng)層。在 Android 4.4 以及之后的 Android L 的規(guī)劃中,它將應用程序的運行模式由 Dalvik 換成了 ART,其原理簡單來說是“預編譯”效果,即當一款應用程序在第一次被安裝到 Android 時,它的字節(jié)碼就已經(jīng)被編譯成為了本地的機器碼,減少后續(xù)運行應用程序時的啟動和執(zhí)行時間。
根據(jù) Google 自己公布的結果,在不同的性能測試 App 中,ART 的速度對比 Dalvik 的平均提升幅度達到了 80%,在某些項目中,ART 的提升幅度甚至超過了 1.5 倍,這個結果可謂非常喜人。
這是 Google 希望從源頭解決 Android 卡慢問題的努力,但是這只是對性能優(yōu)化有著作用,無法解決因為應用程序違規(guī)調用資源而產(chǎn)生的問題。同時,由于在安裝應用程序時進行了“預編譯”,整個安裝時間將會變長,安裝完畢后生成的文件也會變大,比如最新的 Google+ 安裝包只有 6.9M,但是它安裝后的 APK 大小達到了 28.3M,這對 Android 手機儲存空間又存在過多占用的問題。
“手機調!钡牡诙墸谟 ROM 層。作為全球最大的 Android 市場,中國的許多手機廠商都以開發(fā)專用 ROM 來為銷售產(chǎn)品添彩,大多數(shù)的 ROM,也都會考慮對 Android 系統(tǒng)進行優(yōu)化,比如 MIUI V6 就宣稱“引入多種 Linux 系統(tǒng)內核內存優(yōu)化技術,提高應用運行效率”。
也就是說,與 Google 做的事情一樣,ROM 廠商主要的優(yōu)化工作,也是對 Linux 動刀,打上各種補丁,使其底層語言能夠更好的適配到各種手機終端上。還是以 MIUI V6 為例,在介紹新特性時,其有這么一條:“ZRAM 調度優(yōu)化技術”,其實 ZARM 就是 Linux 內核里的一個內存模塊,作用就是在內存中劃出一個部分出來充當虛擬盤,來承載 Linux 的交換分區(qū),將一些任務壓縮容納進去,使內存的使用率提高,讓 CPU 來為內存服務(因為目前的智能手機普遍 CPU 過剩、而內存才是瓶頸)。
不過,ROM 也是一把雙刃劍,它對于 Android 底層系統(tǒng)的修改,以及它對于內存空間的占用,又都有增加手機負載的風險。
“手機調校”的第三級,在于應用層。大量應用程序在手機中發(fā)生的意外或故意占用事件,是造成 Android 手機越來越慢的最核心原因。過多的應用程序熱衷于滯留在內存空間里、以及將大量碎片留在儲存空間里,是帶來麻煩的罪魁禍首。這也是為什么即時清理類應用得以逐漸成為 Android 手機標配。
Android 系統(tǒng)有七類進程,分別是前臺進程、可見進程、主要服務、次要服務、后臺進程、內容供應節(jié)點、空進程,在沒有安裝清理類應用的時候,一部 Android 手機只能依賴系統(tǒng)默認的分配機制來自動調節(jié)內存使用,只要應用程序提出請求,大部分進程只要打開后都會被保留在內存當中,這原本是為了讓用戶在再度激活這些進程時不需要重新載入、節(jié)省時間的初衷考慮,但是 Android 沒有料到激烈的市場競爭會驅使應用程序產(chǎn)生“劣幣驅良幣”的趨勢,很多開發(fā)者出于商業(yè)目的,在不需要留存在內存的情況下也想方設法的讓應用程序保持潛在運行狀態(tài),一個兩個還好說,但是一旦數(shù)量更多,Anrdoid 手機就會頻頻卡頓和發(fā)熱。
以目前全球用戶規(guī)模最大的 Android 手機清理類應用“某清理大師”為例,它清理的進程類型,主要放在后臺進程、次要服務、內容供應節(jié)點和空進程:
后臺進程(Hidden)——這個是最優(yōu)先被掃描和識別出來的進程,因為大部分 Android 用戶在切換應用程序時都不會使用返回鍵退出,而是直接按下 Home 鍵,前者會讓應用進入空進程(占用資源相對較小),而后者則會保留為后臺進程(占用資源相對更大),尤其是當游戲類 App 在后臺運行時,它會和其他 App 爭搶資源,而不會在乎那款 App 是不是用戶正在使用。根據(jù)某清理大師的統(tǒng)計,約有 20% 的常用 App 即使不運行時也在后臺啟動聯(lián)網(wǎng),主要是提交產(chǎn)品及用戶使用信息、獲取廣告信息、查詢是否升級等。
次要服務(Secondary Server)——比如某些企業(yè)套件、郵箱聯(lián)系人、觸控接口等,這些進程很多都是系統(tǒng)自帶的,有些用戶會使用,但是有些用戶也可能不會使用或已經(jīng)有了替代應用,所以某清理大師的清理邏輯是基于用戶行為和授權來建立(分為建議清理和深度清理兩類);
內容供應節(jié)點(Content Provider)——這部分進程沒有程序實體,僅僅提供內容給其他應用使用,比如日歷供應節(jié)點、郵件供應節(jié)點等,除了占用內存資源之外,它還會占用網(wǎng)絡,所以也會給 Android 手機造成不必要的負擔;
空進程(Empty)——如果是通過返回鍵退出應用,大部分的應用也會在 Android 手機的內存里遺留一個空的進程,這個進程沒有數(shù)據(jù)運行,但是會記錄應用的歷史信息,幾乎沒有任何價值,同樣,這部分進程內容被干掉的優(yōu)先級也很高。
除了對內存的過度消耗之外,Android 手機也容易在儲存中積累大量冗余數(shù)據(jù),包括無法卸載的預裝應用、卸載之后的殘存文件以及使用應用的過程中產(chǎn)生的緩存,由于 Android 本身沒有提供管理工具,即使將手機連接電腦之后也是如同 Windows 樹狀結構一樣的文件夾包,用戶很難獨立判斷哪些文件夾可以刪除、哪些文件夾是系統(tǒng)必備的,最后也會導致手機尺寸空間愈來愈窄的情況。
“手機調校”的問題,可能又回帶來用戶操作的負擔增加,其心理壓力甚于行為壓力,玩著手機還不忘隔三差五的使用清理功能,這種與 iPhone 相比“別具特色”的操作習慣,也是 Android 手機永遠像一個半成品或工程機的原因。