一悔雹、卡頓原理
1、應(yīng)用程序卡不卡頓欣喧,指的是APP的流暢度腌零。手機(jī)每秒鐘顯示60次畫面(單位fps,F(xiàn)rames Per Second唆阿,每秒傳輸幀數(shù))益涧,才能讓人覺(jué)得流暢,而對(duì)于電影來(lái)說(shuō)酷鸦,24fps的速度就夠了饰躲。換句話說(shuō),手機(jī)屏幕的刷新率一般為60Hz臼隔。
2嘹裂、垂直同步:為了讓系統(tǒng)繪制UI的頻率與屏幕硬件的刷新率一致,Android的繪制系統(tǒng)引入了VSYNC(垂直同步)的概念摔握。在屏幕刷新率為60Hz的手機(jī)上寄狼,Android系統(tǒng)會(huì)每隔1/60秒發(fā)送一個(gè)VSYNC信號(hào),當(dāng)繪制模塊接受到信號(hào)后氨淌,就會(huì)將已經(jīng)繪制完成的畫面發(fā)送到屏幕上泊愧。如果每一幀的繪制周期(繪制一幀所需要的CPU耗時(shí)+GPU耗時(shí))都小于1/60秒,就能夠保證屏幕每次刷新都能及時(shí)的將最新的內(nèi)容投放到屏幕上盛正。否則删咱,就會(huì)造成卡頓。
二豪筝、過(guò)度繪制
1痰滋、過(guò)度繪制:過(guò)度繪制是造成APP卡頓的其中一個(gè)原因。假設(shè)有一個(gè)白色的界面续崖,里面有一個(gè)藍(lán)色的按鈕敲街。顯卡(GPU)在畫這個(gè)界面的時(shí)候,先畫白色背景严望,再畫藍(lán)色按鈕多艇。但是,如果你的白色背景的后面像吻,又有一個(gè)紅色背景峻黍,那么顯卡就得在畫白色背景之前复隆,畫一遍紅色背景。紅色背景對(duì)用戶來(lái)說(shuō)是看不到的奸披,但是對(duì)顯卡來(lái)說(shuō)就是一個(gè)額外的負(fù)擔(dān)昏名。這就是過(guò)度繪制涮雷。
2阵面、在Android上打開(kāi)開(kāi)發(fā)者選項(xiàng),可以查看過(guò)度繪制洪鸭。如果應(yīng)用界面藍(lán)样刷、綠色較多,則基本沒(méi)有過(guò)度繪制览爵;如果滿屏紅色的話置鼻,流暢度就很糟糕了。
3蜓竹、在Android上打開(kāi)開(kāi)發(fā)者選項(xiàng)箕母,可以查看刷新一幀的速度。界面中的綠線以下代表良好的速度俱济,超過(guò)綠線則有卡頓嘶是。
——部分內(nèi)容整理自網(wǎng)絡(luò)——