分析Android系統(tǒng)app性能問題,使用Systrace文件分析找出引起系統(tǒng)卡頓,反應(yīng)慢的原因贺氓,開機(jī)慢等問題
1叨襟、首先打開Android Device Monitor(DDMS為例),選擇要你的應(yīng)用進(jìn)程這里如com.android.gallery3d
2晰洒、點(diǎn)擊capture system wide trace using android systrace
3朝抖、點(diǎn)擊后會(huì)彈出trace配置框,看自己需要的配置點(diǎn)勾
4谍珊、生成trace文件如目錄所示治宣,確保電腦有chome瀏覽器,在瀏覽器輸入 chrome://tracing/ 會(huì)顯示如圖
5、點(diǎn)load侮邀,選擇trace所以目錄
6坏怪、使用快捷鍵查看,W:放大 S:縮小 A:左移 D:右移
G:選中當(dāng)前Task開始位置 ? SHIFT+G:選中Task結(jié)束的位置
放大選中查看豌拙,就可以看到具體耗時(shí)情況陕悬,尤其用來看卡頓,優(yōu)化UI按傅,啟動(dòng)速度非常有效
6.代碼中添加代碼生成trace文件
android4.3 api18以上捉超,允許代碼生成trace文件。使用
Trace.beginSection(Tag);開始
Trace.endSection();結(jié)束
必須保證在統(tǒng)一進(jìn)程begin和end,類似上鎖唯绍,多個(gè)begin和end出現(xiàn)拼岳,會(huì)找到最近那個(gè)匹配
7、接下來看看traceview分析trace log
使用TraceView主要有兩種方式:
第一種方式打開DDMS况芒,選擇一個(gè)進(jìn)程惜纸,后點(diǎn)“Start Method Profiling”按鈕,等紅色小點(diǎn)變成黑色以后就表示TraceView已啟動(dòng)完成绝骚。然后開始進(jìn)行對有懷疑的地方進(jìn)行滑動(dòng)點(diǎn)擊操作耐版。然后再點(diǎn)“Start Method Profiling”按鈕按鈕,等一會(huì)就會(huì)出現(xiàn)上面這幅圖压汪,然后就可以開始分析了粪牲。按鈕如圖
第2種方式 android.os.Debug.startMethodTracing()和android.os.Debug.stopMethodTracing();運(yùn)行完在sdcard目錄生成trace文件,也可以指定名字止剖,在startMethodTracing(String traceName);
再使用命令導(dǎo)出到電腦腺阳,用ddms打開 adb pull /sdcard/wanghp.trace ?/adin
重點(diǎn):
1、Calls + Recur Calls / Total 調(diào)用次數(shù)穿香,遞歸次數(shù)
2亭引、Cpu Time / Call,cpu時(shí)間和調(diào)用次數(shù)皮获,比如一個(gè)recyclerview焙蚓,可以分析adapter總共時(shí)間,以及調(diào)用次數(shù)魔市,分析耗時(shí)主届,效率問題
3、cpu time和real time cpu執(zhí)行時(shí)間和真正時(shí)間待德,如果有區(qū)別君丁,那real 比cputime高,存在阻塞
剛學(xué)會(huì)用tracelog分析将宪,繼續(xù)研究绘闷,畢竟該工具沒文檔橡庞,自己guess