前言:在android功能都開發(fā)完畢后,可以開始考慮優(yōu)化代碼。但要怎么入手呢?首先我們應該解決明顯的UI卡頓,其次可以考慮內存優(yōu)化等等。當然因為鄙人能力有限,有不到之處還請各位大神指教。
1.UI卡頓
UI卡頓的問題,我們可以利用ddms的traceview功能查看。

第一次點擊后,會彈出一個對話框,直接點擊確定,使用默認的即可.然后在界面上操作一下認為耗時的地方,在點擊一下帶紅點的按鈕.在IDE中就會出現(xiàn)traceview的視圖.
我們在

這一欄中找到CPU_time/call,點擊后排序.里面找我們自己的函數(shù),就能看到較耗時的操作,在進行優(yōu)化.
PS:如果已經(jīng)點擊紅點按鈕,界面操作無響應的話,多半是哪個地方ANR了,我們可以adb pull data/anr/* ?d:/ ? 拷貝出traces.txt文件 從而定位哪個函數(shù)在主線程進行了耗時操作.
2.堆內存泄漏
內存泄漏用IDE可點開紅框

若是沒有視圖窗口,則在IDE上方窗口選windows -->show view 里面找到heap
我們在heap界面,然后每五秒選擇gauge GC 若是heap size穩(wěn)定在一個數(shù)值則表示沒有內存泄漏的風險,若是heap size在不停的增大,則我們需要考慮創(chuàng)建對象的地方哪還值得優(yōu)化.可以百度 Android內存優(yōu)化.
>推薦使用LeakCancary,eclipse版本的jar包本地有,詳情私信
3.線程耗時

我們在設備列表中選中我們的包名,然后打開紅框的線程.在右側就能看到當前應用所有的線程,utime表示我們的線程執(zhí)行耗時,重點關注這個即可.
4.UI嵌套

點開這個按鈕需要手機有root權限,若是沒有的話,可在手機開發(fā)者選項中,打開GPU過度繪制,如果界面中紅色的區(qū)域較多,則這部分區(qū)域是我們需要優(yōu)化的
5.cpu占比
我們可在上述右側部位找到system info的窗口,點擊update后,即可看我們的應用瞬時占用的cpu比例.
todo : 如何分析各個函數(shù)占用cpu的比重