Traceview是Android平台配備一個很好的性能分析的工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,並且能具體到method。
在SDK路徑\tools目錄下.
1.在開始使用TraceView你要注意:
你的設備和模擬器必須設置SD card 和 你的程序擁有對SD card 具有讀寫操作的權限(
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />)
Debug.stopMethodTracing()但是在實際的測試時發現這種方式其實並不好用,因為通常情況下我們的activity的onDestroy()是由系統決定何時調用的,因此可能等了很長時間都不會得到這個trace文件。因此決定在onStop()中來調用Debug.stopMethodTracing()。這樣當我們切換到其它activity或者點擊home鍵的時候onStop()就會被調用,我們也就可以得到完整的trace file。 在運行程序之前,首先要保證我們的AVD是一個帶有SD card的AVD,這樣才能使trace文件保存到/sdcard/...當中。運行後可以任意做一些操作,然後點擊home鍵。這是通過DDMS file explore就可以看到/sdcard/目錄下有一個trace文件,現在把這個文件copy到電腦上指定的目錄,假設是C:\tracefile 目錄下。 可以通過命令行來執行traceview,進入tools目錄後,執行 traceview C:\tracefile\yourActivityTrace.trace 之後就可以看到圖形了.
常用名詞的一些解釋:
Exclusive: 同級函數本身運行的時間
Inclusive 就是說除統計函數本身運行的時間外再加上調用子函數所運行的時間
Name:列出的是所有的調用項,前面的數字是編號,展開可以看到有的有Parent 和Children子項,就是指被調用和調用。
Incl: inclusive時間占總時間的白分比
Excl: 執行占總時間的白分比。
Calls+Recur Calls/Total: 調用和重復調用的次數
Time/Call: 總的時間。(ms)
在實際開始中,我們就可以利用traceview和monkey等工具測試應用,根據反映對具體的代碼進行優化