ANR?
ANR 產(chǎn)生的原因:
1. 主線程請(qǐng)求網(wǎng)絡(luò)資源,數(shù)據(jù)庫(kù)訪問或者io訪問,這些操作都是耗時(shí)操作,主線程處于阻塞狀態(tài),如果超時(shí)等待,會(huì)發(fā)生anr
2. cpu處于饑餓狀態(tài),無法讓主線程運(yùn)行,導(dǎo)致anr
3. 其他進(jìn)程或者線程占用cpu資源,無法釋放資源讓該主線程運(yùn)行,導(dǎo)致anr
4. 死鎖,即主線程等待的鎖正在被其它線程占用,無法釋放。
ANR 分析點(diǎn):
1. Logcat 輸出的ANR產(chǎn)生信息:
* 關(guān)注發(fā)生ANR前后的CPU占用率。
2. data/anr/traces.txt?
* 死鎖?
> ?如何判斷死鎖