首頁 >> 滾動資訊 >> 網絡 >> 安卓手機為什么會越用越卡?安卓手機越用越卡的原因(圖)

安卓手機為什么會越用越卡?安卓手機越用越卡的原因(圖)

2015年12月25日 14:42 來源:超能網 
【安卓手機為什么會越用越卡?安卓手機越用越卡的原因】自2008年第一部Android手機發布至今,雖然在操作體驗上一直生活在iOS陰影之下,但不可否認,Android是越來越強了,與iOS的差距越來越小,尤其是一向被詬病的流暢度,在Android 5.0之后更是有了質的飛躍。

  自2008年第一部Android手機發布至今,雖然在操作體驗上一直生活在iOS陰影之下,但不可否認,Android是越來越強了,與iOS的差距越來越小,尤其是一向被詬病的流暢度,在Android 5.0之后更是有了質的飛躍。如今的Android手機,在八核處理器4GB內存加持下,一樣也可以做到如絲般的順滑,然而……

  Android機越用越卡,那是因為“野火燒不盡,春風吹又生”

  “安卓越用越卡,有本事用半年再比比!”,好像真是這樣,竟然反駁不了。

  以前,Android為什么不如iOS流暢?

  以前,Android的流暢度不如iOS,其實原因也很簡單:

  一是先天不足,在Linux上跑個虛擬機,再用JAVA做開發,雖然能減輕開發負擔,獲得浩瀚資源,但在后期優化上的成本增加更多,在上次的《Android手機需要清內存嗎?》中提過,Java沒有提供任何操作來釋放內存(iOS的開發語言Object C能自行控制內存釋放),是通過系統的內存回收機制來進行管理,但內存回收是個雙刃劍,GC(Gabage Collection,垃圾回收)時所有線程都要暫停,也就是所謂的卡頓。

  Android的系統架構

  二是后天開放帶來的混亂,強制與封閉,給iOS的應用帶來了高度的統一和標準,而開放的Android必然帶來混亂這樣的負面作用,碎片化是眾所周知的惡果,一些應用為了兼容更多舊款設備,只得繼續使用低level的API,如微信,現在還是使用API level 9,就是為了能在Android 2.3系統上使用,而Android 5.1支持的API level已達到22了,效率上顯然大打折扣,除此之外,開發上的開放性更是一個非常大的隱患,這也是今天要談的主要問題。

  iOS為了流暢度,其實做了非常多的妥協來換取用戶體驗上的好感,比如墓碑式內存管理、優先UI渲染等,Google在2012年提出了黃油計劃(Project Butter),開始著手解決Android卡頓這個老大難問題,并從Android 5.0開始,將Dalvik虛擬機全面轉向ART虛擬機,后者在安裝應用的時候會進行預編譯,將代碼轉換為機器語言存儲在本地,這樣在運行程序時就不用每次都編譯一次,執行效率得到大大提升,同時,新的ART模式也降低了每次GC的時間,一些額外的優化也可以避免GC的頻繁發生。

  黃油計劃的垂直同步與三重緩沖讓操作更一致順滑

  Google的這些作為讓Android系統在流暢度上有了實質性的突破,從宏觀上講,Android是越來越不卡越來越流暢,那么,在如今這么強大的硬件支持下,為什么還會讓很多人覺得越用越卡呢?

  現在,Android越用越卡:應用在后臺不斷重生

  到了今天,隨著硬件的發展及系統的不斷改良優化,Android架構上的先天不足已經是影響甚微,從那些旗艦新機的表現足以證明了,秒開、流暢、順滑……絕不輸于 同級別iPhone,但是,這通常是指出廠狀態下的表現,如果裝上幾十個國產APP,情況可能會發生些變化——流暢度明顯下降了,用戶開始叫卡了。

  顯然問題出在這些APP上,前面說過,Android的開放是把雙刃劍,在自由的背后往往潛伏著危險,善惡存乎一心,開發商掌控著進退大權,而以國人之尿性,搶占市場、提升APP活躍度往往是最重要的,既然我不流氓別人也會流氓,我為什么不更流氓呢?

  Android應用開發有四大組件,廣播接收器(BroadcastReceiver,以下簡稱Receiver)就是其中之一,它用來接收來自系統和應用中的廣播,你也可以理解它是一個監聽器,比如當電量變化時,系統會產生一條廣播,接收到這條廣播就能在電量低時告知用戶保存進度或進入省電模式等;當有電話進來,也會產生一條廣播,就會通知電話接聽或電話號碼判斷等。

  各色各樣的系統Receiver(采集于ROM Toolbox)

  在Android中,全局的Receiver就近百種,可以監聽各色各樣的狀態變化,比如開關機、通電斷電、網絡狀態變化、電量變化、安裝卸載應用、電話呼出呼入、SD卡變化等。開放的Android允許應用程序注冊任意個Receiver, 這也成為流氓應用滋生的溫床,不良的開發者向系統注冊多個靜態Receiver,接受各種廣播通知,然后執行相應的Activity,比如自啟動。

  Android越用越卡的主要原因在于,后臺有大量應用在默默運行,而這些應用根本就是清理不掉的,它們會監聽各種各樣的Receiver并再度啟動, 我能想到最好的描述就是“野火燒不盡,春風吹又生”。作為對比,iOS中被殺掉的后臺進程再啟動的方法很有限,簡單的說,iOS是真的能清理內存,而Android中許多應用揮之不去,不斷重生,各種進程與服務在后臺偷偷運行,從而引起系統卡頓與耗電,其實又有幾個開發商會為你手機的電池著想呢?

  Android不良應用的重生,主要有兩種途徑:自啟動和關聯喚醒。

  你想都想不到的自啟動

  自啟動,可能在我們意識里它就等于開機自動運行,在Windows下倒也沒差,但在Android下你就太小瞧它了,開機自動運行只是眾多自啟動方式中的一種。在Windows中,你關閉某個軟件后,它基本上不會再自行啟動了,然后Android中由于有Receiver這種東東,讓自啟動變得很容易。

  還是來點具體實例,看看國外APP與國內APP的節操對比:

  eBay與“手機淘寶”應用的自啟動方式對比

  作為同類型電商APP,eBay只有在收到三種Receiver后可能會啟動,而且這三種都是比較規范的,反觀“手機淘寶”,共有九種自啟動行為,除了eBay那三種外,還可能在收到應用卸載等六種Receiver后啟動,我只是想問,我設置時間、卸載應用和你淘寶有半毛錢關系?

  很可惜,國外的APP在國內基本沒辦法用,而國內的不管是優秀的APP還是山寨國外的APP,大多數以搶占市場、提高應用活躍度為主,拼著命變著法子讓自家APP處于活動狀態,一鍵清理內存還有什么用呢,過幾分鐘又如野草般齊刷刷地長了出來。其實手機淘寶這個APP還算好的,看個更變態的:

  百度云有19種自啟行為

  百度云APP高達19種自啟行為,打電話、發短信、充電、連網、換個WIFI等等,這些日常的手機操作,都能讓百度云不斷重生自啟,與你如影隨行,而且是隱蔽不可見的。

  當你接到電話后,還會發生這些事:

安卓手機為什么會越用越卡?真相在這里

  接到電話的同時,在后臺已啟動了“百度云”“有道云筆記”等

  當你收到短信時,還會發生這些事:

  收到短信的同時,后臺會啟動“支付寶”,并且……

  打電話是最基本的手機功能,但是當你打電話/發短信時,后臺早已是波濤洶涌,除了一些應用會完成自啟行為外,還可能會喚醒其它的應用,如“支付寶”啟動后會喚醒“手機淘寶”,這就是大家平常所說的“全家桶”,也就是APP重生的另一途徑——關聯喚醒。

  打仗親兄弟的關聯喚醒

  關聯喚醒大家多少有些了解,也是極具中國特色的產物,簡單地講就是當一款應用啟動后,它會在后臺偷偷啟動另一款應用,基本上這些應用都有裙帶關系,以臭名昭著的百度系、阿里系為代表。

安卓手機為什么會越用越卡?真相在這里

  典型的關聯喚醒

  上圖中,當運行“百度地圖”時,后臺會打開“百度云”,當運行“手機淘寶時”,“支付寶”也同時在后臺開啟,這些都是你看不見的,你手機中的APP越多,那么關聯喚醒的APP就會越多。

  如果你不怕死,裝了百度這一系列APP,就會很熱鬧:

安卓手機為什么會越用越卡?真相在這里

  連環喚醒,一人得道,雞犬升天

  當你打開“百度地圖”后,百度系的其它APP會連環喚醒(我這個手機上喚醒了八款,因為只裝了這么多,像百度手機助手、愛奇藝視頻都能被喚醒),首先“百度地圖”會喚醒“百度云”,“百度云”緊接著會喚醒“手機百度”和“百度視頻”,然后“百度視頻”不遺余力地喚醒幾個好兄弟“百度新聞”、“百度音樂”、“百度貼吧”、“百度瀏覽器”和“百度糯米”。

  “百度云”的喚醒路徑及百度系的喚醒記錄

  一人得道,雞犬升天,“全家桶”實在是形容得太貼切了。不過說實在的,關聯喚醒的APP畢竟都沾親帶故,主要集中于那幾大派系,和無處不在的自啟動相比,關聯喚醒的影響相對要小一些。

  面對野火燒不盡的重生式APP,怎么辦?

  面對這些不斷重生的APP,顯然手動清理內存是沒什么卵用,剛清理了它又啟動了,沒辦法從根本上至少是極大程度上制約這些流氓APP頻繁地被喚醒。好在這種現象已引起了極大關注,有些手機ROM已開始著手從底層來解決這些問題,像最新的魅族Flyme 5就能手動切斷關聯喚醒,算是邁進了一小步。

  Flyme 5的自啟動管理

  不管你用的手機ROM是不是作了針對性改進,都可以參考以下的解決方法,讓負面影響降到最?。?/p>

  1、盡量不要安裝使用頻率極低的APP,尤其是百度系、阿里系、騰訊系的產品;

  2、對于高級玩家,推薦Xposed框架 + 綠色守護的解決方案。

安卓手機為什么會越用越卡?真相在這里

  Android手機必裝APP之綠色守護

  綠色守護除了日常的應用休眠外,其深度休眠能更大程序上保證APP不被關聯喚醒,雖然還是有可能被喚醒,但是不用擔心,被喚醒的APP會被繼續休眠。綠色守護是Android手機必裝神器之一,它更像一個內存無限清理工具,啟動多少清理多少(只清理指定的應用),以不變應萬變,能應付各種疑難雜癥,有效改善系統的流暢性與續航能力,非常推薦,它需要Xposed框架配合,安裝上有小小難度。

  3、如果你覺得Xposed框架安裝起來比較麻煩,可以直接使用一些第三方管理工具,這里推薦360衛士極客版,它能主動禁止掉每個APP的自啟動行為和切斷喚醒,理論上效果更好,就是需要針對操作??赡苣銓?60系也比較抵觸,不過用用會覺得也蠻不錯的 ,實在不喜歡,就用LBE試試。

  360衛士極客版的自啟控制與喚醒切斷

  Android手機為什么越用越卡,相信看完這篇文章的朋友會有答案,Android系統上先天不足的影響現在已經不足道了,主要原因是開放性造成的混亂,國產APP的不良行為(各種自啟、關聯喚醒)成為越用越卡的罪魅禍首,通過上面的解決方法可以讓負面影響最小化,你的手機能再現流暢順滑。但是要從根本上解決這些問題,我們真的需要一個安靜的APP,不要在后臺各種胡天胡帝,幾時Android的應用能像iOS應用那般規范標準,一統天下就指日可待了。

  另外,除了各種應用在后臺自啟或喚醒外,國內APP的消息推送機制也是一大奇葩,同樣會影響到系統的流暢與續航,限于篇幅,我們下次再聊聊這個話題。

分享:
版權與免責聲明:
①凡本網注明"來源:深港在線綜合"的所有作品,均由本網編輯搜集整理,并加入大量個人點評、觀點、配圖等內容,版權均屬于深港在線,未經本網許可,禁止轉載,違反者本網將追究相關法律責任。
②本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
③如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,我們將在您聯系我們之后24小時內予以刪除,否則視為放棄相關權利。
深港櫥窗
贊助商
實用信息
頻道熱點
彩票网站送58元彩金的