60fps--16ms/幀
準(zhǔn)則:盡量保證每次在16ms內(nèi)處理完所有的CPU與CPU計(jì)算番电、繪制傅物、渲染等操作淤翔,否這會(huì)造成丟幀卡頓問(wèn)題
人為在UI線程做了輕微的耗時(shí)操作
布局Layout過(guò)于復(fù)雜剔难,無(wú)法再16ms內(nèi)完成渲染
同一時(shí)間動(dòng)畫(huà)執(zhí)行次數(shù)過(guò)多,導(dǎo)致CPU負(fù)載過(guò)重
人為在UI線程做了輕微的耗時(shí)操作
布局Layout過(guò)于復(fù)雜箭养,無(wú)法再16ms內(nèi)完成渲染
同一時(shí)間動(dòng)畫(huà)執(zhí)行次數(shù)過(guò)多慕嚷,導(dǎo)致CPU負(fù)載過(guò)重
View的過(guò)度繪制,導(dǎo)致某些像素在同一幀時(shí)間內(nèi)被繪制多次毕泌,從而使CPU負(fù)載過(guò)重
View頻繁的觸發(fā)measure,layout喝检。導(dǎo)致measure,layout累計(jì)耗時(shí)過(guò)多及整個(gè)View頻繁的重新渲染
內(nèi)存頻繁觸發(fā)GC過(guò)多(內(nèi)存抖動(dòng))
解決方法:
1、布局優(yōu)化撼泛;盡量使用include挠说、merge、viewstub 標(biāo)簽愿题;盡量不存在冗余嵌套及過(guò)于復(fù)雜布局损俭;盡量使用gone代替invisiable屬性
2、listview與adapter優(yōu)化潘酗;getView中盡量復(fù)用view杆兵;
3、背景與圖片優(yōu)化仔夺;盡量減少不必要的背景設(shè)置琐脏;圖片盡量壓縮處理顯示;
4、自定義view等繪圖與布局優(yōu)化日裙;盡量避免在draw吹艇、measure、layout中做過(guò)于耗時(shí)及耗內(nèi)存操作阅签,尤其是draw方法中掐暮,盡量減少draw蝎抽、measure政钟、layout等執(zhí)行次數(shù);
5樟结、避免ANR养交;不要在UI線程中做耗時(shí)操作,遵守ANR規(guī)避守則瓢宦,譬如多次數(shù)據(jù)庫(kù)操作等碎连;