標籤:
先看命令(配置好環境變數的情況下,直接traceview+空格+ trace檔案路徑即可):
TraceView是什麼
Traceview是android平台配備一個很好的效能分析的工具。它可以通過圖形化的方式讓我們瞭解我們要跟蹤的程式的效能,並且能具體到method。
Traceview的作用
1. 查看跟蹤代碼的執行時間,分析哪些是耗時操作
2. 可以用於跟蹤方法的調用,尤其是Android Framework層的方法調用關係
Traceview的使用步驟
分為以下三步:
1. 選擇追蹤範圍加入記錄代碼
2.利用tools下的工具trace view開啟.trace檔案
3.分析trace檔案
1. 選擇追蹤範圍加入記錄代碼
首先,必須在程式當中加入代碼,以便產生trace檔案,有了這個trace檔案才可以將其轉化為圖形。
要添加的代碼如下:
1 |
Debug.startMethodTracing(“wirelessqa”); //開始 |
2 |
Debug.stopMethodTracing(); //結束 |
其中參數wirelessqa是要建立的trace檔案的名稱,wirelessqa.trace。預設路徑是/sdcard/wirelessqa.trace,也可以自己制定/data/log/wirelessqa,表示檔案在/data/log/wirelessqa.trace。
執行個體代碼參考:
01 |
publicclass MainActivity extends Activity { |
04 |
protectedvoid onCreate(Bundle savedInstanceState) { |
05 |
super.onCreate(savedInstanceState); |
06 |
setContentView(R.layout.activity_main); |
07 |
setTitle(this.getClass().getName()); |
08 |
View toLoginView = findViewById(R.id.to_login); |
09 |
// 開始記錄 sdcard/wirelessqa.trace檔案 |
10 |
Debug.startMethodTracing("wirelessqa"); |
11 |
toLoginView.setOnClickListener(new View.OnClickListener() { |
13 |
publicvoid onClick(View view) { |
14 |
Intent intent = new Intent(getApplicationContext(), LoginActivity.class); |
15 |
startActivity(intent); |
21 |
protectedvoid onStop() { |
23 |
Debug.stopMethodTracing();// 結束記錄wirelessqa.trace |
說明:
開發文檔中說可以在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),但是在實際的測試時發現這種方式其實並不好用,因為通常情況下我們的activity的onDestroy()是由系統決定何時調用的,因此可能等了很長時間都不會得到這個trace檔案。
因此決定在onStop()中來調用Debug.stopMethodTracing()。這樣當我們切換到其它activity或者點擊home鍵的時候onStop()就會被調用,我們也就可以得到完整的trace file。
別忘了加入訪問SD卡的許可權
1 |
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> |
2 |
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> |
2.利用tools下的工具trace view開啟.trace檔案
3. 分析trace檔案
TraceView 使用詳解 android eclipse