一文带你读懂 Android 手机为何总是卡顿、死机?
前言
在我們?nèi)粘I钪?#xff0c;手機(jī)已經(jīng)成為我們不可或缺的物品,曾經(jīng)網(wǎng)上有一個(gè)搞笑的段子:“現(xiàn)在可以沒(méi)有老婆,沒(méi)有工作,但是不能沒(méi)有手機(jī)”; 雖說(shuō)是搞笑段子,但足以看出手機(jī)在人民心中的地位了;然而手機(jī)使用一段時(shí)間后,我們就會(huì)發(fā)現(xiàn)手機(jī)會(huì)變得十分卡頓甚至死機(jī),安卓手機(jī)卡頓的原因一直是大家十分關(guān)注的焦點(diǎn)
導(dǎo)致手機(jī)慢的原因有哪些?
現(xiàn)在有一種說(shuō)法,也是一位開發(fā)者所說(shuō): “iOS的App中70%的代碼是有用代碼,30%是冗余或廣告代碼;而安卓 App正好相反,70%的是冗余或廣告代碼,只有30%是有用代碼”
為了大家能夠更好理解“冗余(rǒng yú)”,它的含義:多余的、重復(fù)或者啰嗦內(nèi)容(包括信息、語(yǔ)言、代碼等)
5大產(chǎn)生系統(tǒng)垃圾的原因我們簡(jiǎn)單的來(lái)說(shuō)下,在使用Android系統(tǒng)時(shí),其實(shí)我們也都總結(jié)的差不多了,看看下面列舉出來(lái)的原因,你是否已經(jīng)發(fā)現(xiàn)了
- 1、Android系統(tǒng)本身的問(wèn)題,它是開放的系統(tǒng),頻繁的安裝與卸載必然會(huì)在手機(jī)內(nèi)積累大量殘留垃圾
- 2、并不是垃圾多的App就一定是垃圾App,像一些門戶網(wǎng)站和一些生活類的App,必然會(huì)生產(chǎn)出大量的系統(tǒng)垃圾。比如QQ、微信、視頻、微博這些頻繁使用的應(yīng)用
- 3、應(yīng)用開發(fā)商并不是每個(gè)都能力優(yōu)秀,優(yōu)化做得不好在使用中當(dāng)然會(huì)產(chǎn)生大量的垃圾文件占用ROM空間,以及這些App在后臺(tái)自動(dòng)啟動(dòng)占用RAM
- 4、一些不良的應(yīng)用開發(fā)商會(huì)在App中大量植入廣告,因?yàn)橥ㄟ^(guò)植入廣告他們可以掙到大量的錢財(cái)。可以說(shuō)一個(gè)安卓App里面,才出現(xiàn)一兩個(gè)廣告的話,那我們就應(yīng)該很感謝那個(gè)開發(fā)商了
- 5、說(shuō)到廣告的植入,我們會(huì)感到很厭惡,但要說(shuō)到一些大型的App在用戶下載安裝時(shí),同時(shí)會(huì)要求用戶綁定安裝其他的App,我們又作何感想呢;有時(shí)某個(gè)App發(fā)現(xiàn)更新,但當(dāng)用戶更新完畢后,很可能桌面上會(huì)多出來(lái)一個(gè)新的圖標(biāo)
對(duì)于Android這種“無(wú)政府”管理的開放體系, 我們消費(fèi)者還是自己要做出一些明智的選擇;那就是安裝系統(tǒng)清理大師,時(shí)不時(shí)地清理下手機(jī); 同時(shí)渴望下App開發(fā)者們能夠開發(fā)一些“綠色軟件”; 其他的咱們也就不再多說(shuō)了,我們選擇了Android系統(tǒng),就要多加深入的了解它,呵護(hù)自己的手機(jī)
Android 卡頓問(wèn)題
安卓手機(jī)一直來(lái)都有一個(gè)嚴(yán)重的問(wèn)題,那就是卡頓; 特別是長(zhǎng)期使用后,手機(jī)運(yùn)行速度大不如前,而蘋果手機(jī)卻可以保持長(zhǎng)久流暢,這讓不少用戶都感覺(jué)到奇怪,畢竟這些年安卓手機(jī)的進(jìn)步還是非常大的,甚至有超越蘋果手機(jī)的趨勢(shì),但是手機(jī)卡頓這個(gè)問(wèn)題依然沒(méi)有解決
不過(guò)這也是沒(méi)有辦法的事情,要知道谷歌出于種種原因被迫退出中國(guó)市場(chǎng),我們只能采用深度定制化的安卓系統(tǒng),這樣也造成了生態(tài)環(huán)境的問(wèn)題
Android 系統(tǒng)卡頓原因
1、安卓系統(tǒng)的運(yùn)行機(jī)制導(dǎo)致
安卓系統(tǒng)的應(yīng)用都是在Java虛擬機(jī)上運(yùn)行的,這和蘋果的機(jī)制完全不同,也直接導(dǎo)致了我們?cè)谑褂檬謾C(jī)時(shí)積累的垃圾會(huì)越來(lái)越多,從而拖慢了系統(tǒng); 還有安卓的后臺(tái)運(yùn)行機(jī)制也是導(dǎo)致手機(jī)卡頓的原因,雖然現(xiàn)在的手機(jī)內(nèi)存越來(lái)越大,但本質(zhì)上并沒(méi)有改變,安卓的后臺(tái)機(jī)制相比蘋果來(lái)說(shuō)還是略微差一些的
2、軟件生態(tài)混亂
由于谷歌商店無(wú)法在中國(guó)市場(chǎng)使用; 以至于安卓生態(tài)亂象重生,流氓軟件一大堆,各種索要權(quán)限、軟件相互喚醒、后臺(tái)偷偷自啟和偷跑流量、到處都是廣告,使得安卓的用戶體驗(yàn)比較差,容易造成手機(jī)速度變慢;而蘋果就不一樣了,蘋果的應(yīng)用商店的軟件都是經(jīng)過(guò)嚴(yán)格把控和審核的
3、缺乏消息統(tǒng)一推送聯(lián)盟
安卓手機(jī)想要及時(shí)接收消息,就必須讓APP常駐后臺(tái)或者已啟動(dòng),而且消息推送往往不夠及時(shí),也就微信QQ幾個(gè)常用的社交軟件做得好一些; 由于缺乏統(tǒng)一的推送服務(wù),也會(huì)造成安卓手機(jī)卡頓、耗電;日前,華為、榮耀、oppo等公司都已經(jīng)加入了安卓統(tǒng)一推送聯(lián)盟,安卓卡頓有望得到改善
APP 卡頓的原因匯總
- 1、人為在UI線程中做輕微耗時(shí)操作,導(dǎo)致UI線程卡頓
- 2、布局Layout過(guò)于復(fù)雜,無(wú)法在16ms內(nèi)完成渲染
- 3、同一時(shí)間動(dòng)畫執(zhí)行的次數(shù)過(guò)多,導(dǎo)致CPU或GPU負(fù)載過(guò)重
- 4、View過(guò)度繪制,導(dǎo)致某些像素在同一幀時(shí)間內(nèi)被繪制多次,從而使CPU或GPU負(fù)載過(guò)重
- 5、View頻繁的觸發(fā)measure、layout,導(dǎo)致measure、layout累計(jì)耗時(shí)過(guò)多及整個(gè)View頻繁的重新渲染
- 6、內(nèi)存頻繁觸發(fā)GC過(guò)多(同一幀中頻繁創(chuàng)建內(nèi)存),導(dǎo)致暫時(shí)阻塞渲染操作
- 7、冗余資源及邏輯等導(dǎo)致加載和執(zhí)行緩慢
- 8、臭名昭著的ANR
以上就是安卓APP卡頓的常見(jiàn)原因,此外,作為開發(fā)人員為用戶帶去操作流暢絲滑的APP,是漫長(zhǎng)職業(yè)生涯當(dāng)中的終極目標(biāo)
好了,文章基本上就到這里,Android 卡頓的原因已經(jīng)分析完畢了!,如有地方不對(duì)或者有不同理解的可以提出來(lái)
最后我想說(shuō):
對(duì)于程序員來(lái)說(shuō),要學(xué)習(xí)的知識(shí)內(nèi)容、技術(shù)有太多太多,要想不被環(huán)境淘汰就只有不斷提升自己,從來(lái)都是我們?nèi)ミm應(yīng)環(huán)境,而不是環(huán)境來(lái)適應(yīng)我們
技術(shù)是無(wú)止境的,你需要對(duì)自己提交的每一行代碼、使用的每一個(gè)工具負(fù)責(zé),不斷挖掘其底層原理,才能使自己的技術(shù)升華到更高的層面
Android 架構(gòu)師之路還很漫長(zhǎng),與君共勉
PS:有問(wèn)題歡迎指正,可以在評(píng)論區(qū)留下你的建議和感受;
歡迎大家點(diǎn)贊評(píng)論,覺(jué)得內(nèi)容可以的話,可以轉(zhuǎn)發(fā)分享一下
總結(jié)
以上是生活随笔為你收集整理的一文带你读懂 Android 手机为何总是卡顿、死机?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FreePBX 安装配置初学记录
- 下一篇: 树莓派小车————循迹篇