1. 程式人生 > >Android卡頓問題分析方法

Android卡頓問題分析方法

卡頓直接原因:繪製一幀的時間>16ms 根本原因: 1)UI執行緒做了耗時操作(嚴重ANR) 2)佈局過於複雜,巢狀多,overdraw 3)記憶體GC被頻繁觸發 分析方法: 1)HierarchyViewer會顯示繪製每個view時(onMeasure、onLayout和onDraw的耗時),找出哪個view的繪製導致了掉幀,優化其佈局; 2)設定->開發者選項->除錯GPU過度繪製(overdraw 3)Android Studio 滑鼠放在程式碼區點選右鍵->Analyze->Inspect Code–>介面選擇你要檢測的模組->點選確認開始檢測,會提示佈局及邏輯的問題
4)Traceview定位具體耗時的方法 優化策略 1) overdraw:優化佈局層級(多在xml中使用include標籤複用佈局、使用merge標籤去除不必要的佈局層級(配合include使用,即include的佈局的根節點不是RelativeLayot或Linearlayout二十merge標籤)、使用ViewStub標籤實現按需載入)、移除不必要的背景、invisible儘量用gone代替、onDraw中儘量用canvas.clipRect()指定繪製區域 2)GC頻繁導致記憶體抖動: GC原因:GC_MALLOC——記憶體分配失敗時觸發;GC_CONCURRENT——當分配的物件大小超過一個限定值(不同系統)時觸發;GC_EXPLICIT——對垃圾收集的顯式呼叫(System.gc()) ;GC_EXTERNAL_ALLOC——外部記憶體分配失敗時觸發;