綜合討論
瀏覽 : 8258
分享

[分享] Android手機總是越用越慢 WHY??

一般用戶

等級6

資深大大

陳誠誼2014-9-2 01:30

根據第三方的調查研究數據顯示,有77%的Android手機用户承認自己曾遭遇過手機變慢的影響,百度搜索“Android+卡慢”,也有超過460萭條结果。在業内,Android手機一直有着“越用越慢”的口碑,這個现象甚至超出了硬體範疇——很多中高端Android手機在硬體參數上都優于同一代iPhone,但是它們仍然會在使用半年到一年的時間後進入“欠流暢”的狀態——這無疑是一件令人困擾的事情。
然而,若是要回答這個問题,我們需要追溯到上個世纪,去尋找智慧手機的起源。
西方歷史及奇幻文學作品十分熱衷于表達“血统”的設定,其傳统文化認為血统可以决定天赋,并引出“命運是否被注定”的哲學思考。
比如大家比較熟知的《哈利波特》系列,解構之後就不難發現,這實際上是一部講述格蘭芬多與斯莱特林两支血统及其傳人的厮殺史(哈利波特是格蘭芬多的后代,繼承了其勇气,伏地魔是斯莱特林的后代,擁有着其野心),而無處不在的預言(一個終將殺死另一個),也貫徹了西方慣有的宿命論情结。
到了科技行業,“血统”的定義被“基因”所取代,一個公司有着什麼樣的基因,决定了它的擅長领域.這種評價也被廣泛接受,成為唯物時代獨樹一幟的唯心理念,並經受住了事實考驗——當我們試圖解釋微軟失落于互聯網、Google敗退于社交網路、百度止步于電子商務的原因時,都會由衷的感慨“原來劇本早在多年以前就已經寫好了”。
同樣,為什麼Android手機的“卡慢”問题永遠比iPhone要更加嚴重,它的答案也從一開始就注定了。
1965年,貝爾實驗室、通用電氣和麻省理工學院開始合作開發一套能够兼顧易用性和强大性的操作系统.經過六年時間的通力合作,貝爾實驗室的一名軟體工程師Ken Thompson在休假期間完成了一個名為Unix的系统编寫,並最终成為貝爾實驗室的母公司、美國電信巨頭AT&T的商業產品,並啟動了長達數十年的版權運作。儘管後來有着許多變種,但是從嚴格意義上來講,Unix不是一個開放的操作系统。
1991年,一個芬蘭的大學生、同時也是計算機駭客的Linus Torvalds,他對Unix十分着迷,但是買不起運行Unix需要的工作站,所以就嘗試自己以同樣的编程方式寫了一個名為Linux的操作系统,並在自由軟體之父Richard Stallman的精神鼓舞之下,将Linux加入到了自由軟體基金(FSF)當中,允許所有人使用、拷貝、修改甚至銷售Linux系统,同時承擔開放義務,禁止把Linux封閉化的企圖。
之所以要如此大費周章的講述Unix和Linux两個操作系统的故事,是因為iOS和Android,正是分别基于Unix和Linux而衍生出來的作品。也就是说,是Unix和Linux的兩種特性,造成了iPhone與Android手機在使用體驗上的巨大差異。
喬布斯曾經邀请Linux的創始者Linus Torvalds到蘋果工作,放棄Linux的開放,協助開發Mac OS封閉式的Mach内核,後者與喬布斯大吵一架之後明確表示拒绝。而從Mac OS開始,蘋果就將操作系统的私有化視為企業戰略,用喬布斯的話來講,他是將iOS裝進了iPhone這個盒子裏,然後賣给了用户。
所以,iPhone之所以不會出現“越用越卡”的情况,是因為蘋果公司對它的手機從硬體到軟體擁有最高的管理權限.在封閉式的環境中,來自第三方的應用程序無法調用超過iPhone承受限度的指令,自然也不可能造成持續性的系统損傷。
反觀Android手機,由于開放的公開條件,Google無法從代碼這一端口约束第三方的應用程序,同时,由于Linux核心設定應用在調取系统功能時一定要取得ROOT權限,這也導致大量應用因為單一功能的實現需求而獲得整個ROOT層面的支配,可以在Android手機的任意儲存位置進行讀寫。這種高自由度無異于開啟了潘朵拉魔盒,讓Android手機無法對惡意App事先設防。
這也是開放軟體備受爭議、且在商用领域遭到抵制的原因:它只關心是否授予了用户自由——這個自由也包括逾越邊界的自由——而没有從最壞的出發點去考慮如何規避被濫用的風險。
儘管Google作為巨頭,一直在嘗試對產業鏈進行统一管理,但是當這條產業鏈日益龐大、連Google也只能扮演其中之一的角色時,Android的失控也就在情理之中了。比如,Android的最新版本通常需要花費超過一年半的時間,才能使激活它的Android手機占比超過50%,但是iOS 7只用了两個月,就讓半數以上的iPhone都更新完畢。
另外,一款應用程序如果被蘋果從App Store中懲罰出去,它就再也無法被安裝到任何一款合法的iPhone裏面,但是如果一款應用程序被Google驅逐出Google Play,但是它還是可以登錄各種第三方應用市場,提供正常的下載和安装。
所以,Android的這種天生短板,又摧生出了一個“手機調校”的市場,並带動了新的產業鏈。
“手機調校”的第一級,在于系统層。在Android 4.4以及之后的Android L的規劃中,它將應用程序的運行模式由Dalvik換成了ART,其原理簡單來說是“預編譯”效果,即當一款應用程序在第一次被安装到Android時,它的字節碼就已經被编譯成为了本地的機器碼,減少後續運行應用程序時的啟動和執行時間。
根據Google自己公布的结果,在不同的性能测试App中,ART的速度對比Dalvik的平均提升幅度達到了80%,在某些項目中,ART的提升幅度甚至超過了1.5倍,這個結果可謂非常喜人。
這是Google希望从從源頭解决Android卡慢問题的努力,但是這只是對性能優化有着作用,無法解决因為應用程序違規調用資源而產生的問题。同時,由于在安裝應用程序時進行了“預編譯”,整個安裝時間將會變長,安裝完畢後生成的文件也會變大,比如最新的Google+安裝包只有6.9M,但是它安裝後的APK大小達到了28.3M,這對Android手機儲存空間又存在過多占用的問题。
“手機調校”的第二级,在于ROM層。作為全球最大的Android市場,中國的许多手機廠商都以開發專用ROM來為銷售產品添彩,大多數的ROM也都會考慮對Android系统進行優化,比如MIUI V6就宣稱“引入多種Linux系统内核内存優化技術,提高應用運行效率”。
也就是说,與Google做的事情一樣,ROM廠商主要的優化工作,也是對Linux動刀,打上各種補丁,使其底層语言能够更好的適配到各種手機终端上。
還是以MIUI V6為例,在介绍新特性時,其有這麼一條:“ZRAM調度優化技術”。其實ZARM就是Linux内核裏的一個内存模塊,作用就是在内存中劃出一個部分出來充當虚擬盤,來承載Linux的交换分區,將一些任務壓缩容纳進去,使内存的使用率提高,讓CPU來為内存服務(因为目前的智慧手機普遍CPU過剩、而内存才是瓶頸)。
不過,ROM也是一把雙面刃,它對于Android底層系统的修改,以及它對于内存空間的占用,又都有增加手機負載的風險。
“手機調校”的第三级,在于應用層。大量應用程序在手機中發生的意外或故意占用事件,是造成Android手機越来越慢的最核心原因。過多的應用程序熱衷于滞留在内存空間裏、以及將大量碎片留在儲存空間裏,是帶來麻烦的罪魁祸首。這也是為什麼即時清理類應用得以逐漸成为Android手機的標準配備。
Android系统有七類進程,分别是前台進程、可見進程、主要服務、次要服務、后台進程、内容供應節點、空進程。在没有安装清理類應用的時候,一部Android手機只能依賴系统默認的分配機制來自動調節内存使用,只要應用程序提出請求,大部分進程只要打開後都會被保留在内存當中。
這原本是為了讓用户在再度激活這些進程時不需要重新載入、節省時間的初衷考慮,但是Android没有料到激烈的市場競争會驅使應用程序產生“劣幣驅良幣”的趨勢,很多開發者出于商業目的,在不需要留存在内存的情况下也想方設法的讓應用程序保持潜在運行狀態,一個两個还還好說,但是一旦數量更多,Anrdoid手機就会會頻頻卡頓和發熱。
以目前全球用户规模最大的Android手機清理類應用“獵豹清理大師”为例,它清理的進程類型,主要放在后台進程、次要服务、内容供應節點和空進程:
后台進程(Hidden)—這個是最優先被掃描和識别出來的進程,因為大部分Android用户在切换應用程序時都不會使用返回键退出,而是直接按下Home键,前者會讓應用進入空進程(占用资源相對較小),而後者則會保留為後台進程(占用资源相對更大),尤其是當游戲類App在後台運行時,它會和其他App争搶資源,而不會在乎那款App是不是用户正在使用。根據獵豹清理大師的统䚵,约有20%的常用App即使不運行時也在後台啟動聯網,主要是提交產品及用户使用信息、獲取廣告信息、查詢是否升级等。
次要服务(Secondary Server)——比如某些企業套件、郵箱聯系人、觸控接口等,這些進程很多都是系统自带的,有些用户會使用,但是有些用户也可能不會使用或已經有了替代應用,所以獵豹清理大師的清理邏輯是基于用户行為和授權來建立(分为建議清理和深度清理两類);
内容供應節點(Content Provider)——這部分進程没有程序實體,僅僅提供内容给其他應用使用,比如日曆供應節點、郵件供應節點等,除了占用内存资源之外,它還會占用網路,所以也會给Android手機造成不必要的负負擔;
空進程(Empty)——如果是通過返回键退出應用,大部分的應用也会會在Android手機的内存里遗留一個空的進程,這個進程没有數據運行,但是會記錄應用的歷史信息,幾乎没有任何價值,同樣,這部分進程内容被清掉的優先级也很高。
除了對内存的過度消耗之外,Android手機也容易在储存中積累大量冗餘數據,包括無法卸載的预装應用、卸载之后的残存文件以及使用應用的過程中產生的缓存。由于Android本身没有提供管理工具,即使将手機連接电脑之后也是如同Windows樹状结構一样的文件夹包,用户很難獨立判断哪些文件夹可以删除、哪些文件夹是系统必備的,最后也會導致手機尺寸空間愈来愈窄的情况。
“手機調校”的問题,可能又會带來用户操作的負擔增加,其心理壓力甚于行為壓力。玩着手機還不忘隔三差五的使用清理功能,這種與iPhone相比“别具特色”的操作習惯,也是Android手機永遠像一個半成品或工程機的原因。

這篇文章屬於比較深入的文章,裏面最主要探討安卓手機為什麼越用越慢,固然越用越慢有其原因,但原廠的調校還是非常重要的,HTC在這方面,就做得不錯,希望HTC繼續保持優良傳統。歷久而彌新。
以上資料來自趨動之家:
http://news.mydrivers.com/1/318/318441.htm
本文章最後由( 陳誠誼 )於 2014-9-26 08:09 編輯

★HTC論壇三週年生日快樂★
因為你讓我超越想像、不斷實現完美的畫面,讓我看見這一路令人驚豔的一切,我愛上HTC~
檢舉 回應

一般用戶

等級6

資深大大

Jovi2014-9-2 09:41

Android system給我的感覺跟微軟很像,久久就要打掉重練,之前我在電腦安裝一個系統清理大師什麼的,結果把我某個系統擋案給幹了...害我又重練~
從那個教訓後,就不再安裝清理大師之類的,包括電腦,包括手機..
其實還有一個系統wp,先前我拿radar時,CPU :1G ,跑起來的速度之流暢,大概跟Android 雙核1G差不多, 它的優點跟缺點就是:系統封閉, 因為封閉,所以速度流暢,不過...APP真的太少了.



清心王阿喬
檢舉 回應

一般用戶

等級6

資深大大

陳誠誼2014-9-2 11:45

Jovi 發表於 2014-9-2 09:41
Android system給我的感覺跟微軟很像,久久就要打掉重練,之前我在電腦安裝一個系統清理大師什麼的,結果把我 ...

是啊.因為封閉所以流暢..因為開放..所以存取很多暫存檔..久而久之就慢慢變慢了...有無解看google如何處理..

★HTC論壇三週年生日快樂★
因為你讓我超越想像、不斷實現完美的畫面,讓我看見這一路令人驚豔的一切,我愛上HTC~
檢舉 回應

分享