所謂app卡頓原因就是在運(yùn)行時(shí)出現(xiàn)了丟幀,還可能是UI線程被阻塞蜈出。首先來(lái)一下丟幀現(xiàn)象,android每16ms會(huì)對(duì)界面進(jìn)行一次渲染涛酗,如果app的繪制铡原、計(jì)算等超過(guò)了16ms那么只能等下一個(gè)16ms才能進(jìn)行渲染,這就發(fā)生了丟幀現(xiàn)象商叹。
手機(jī)卡頓出現(xiàn)的原因:
1眷蜈,布局過(guò)于復(fù)雜:xml布局文件可能存在深層嵌套或者組件過(guò)多;
2沈自,重復(fù)繪制:一個(gè)界面的某一點(diǎn)可能在同一時(shí)間進(jìn)行了多次繪制;
3辜妓,內(nèi)存抖動(dòng):系統(tǒng)內(nèi)存是有限的枯途,系統(tǒng)經(jīng)常會(huì)將不活躍的進(jìn)程置入外存中就是常說(shuō)的虛擬內(nèi)存,當(dāng)調(diào)用它時(shí)再把它從外存轉(zhuǎn)入內(nèi)存籍滴,內(nèi)存外存轉(zhuǎn)換頻率過(guò)大就會(huì)導(dǎo)致內(nèi)存抖動(dòng)酪夷;
4,性能瓶頸: 任務(wù)過(guò)多且執(zhí)行調(diào)度不夠好孽惰;
5晚岭,歷史問(wèn)原因,老代碼以及設(shè)計(jì)問(wèn)題勋功;
6坦报,團(tuán)隊(duì)人眾多員 ,存在過(guò)多的代碼合并和插入問(wèn)題狂鞋;
7片择,個(gè)別程序員的渣代碼
卡頓優(yōu)化解決方案:
1,減低布局的復(fù)雜度骚揍;
2字管,單線程任務(wù)不要太多;
3信不,適當(dāng)調(diào)度嘲叔;
4,將一些計(jì)算分擔(dān)給服務(wù)器端抽活。