基於SnapDragonBoard410C的TraceView 分析

相信大家在調試APP時都是用Logcat去查看整個APP的運行時打印出來的Log,而當我們需要去優化APP的啓動速度或者APP卡頓嚴重時,我們就要使用工具去查看內存和CPU的使用情況了!
這裏寫圖片描述

一.要打開上面的面板,一般有兩種方式
1.首先選擇跟蹤範圍,在想要根據的代碼片段之間使用以下兩句代碼.
Debug.startMethodTracing(“hello”);
Debug.stopMethodTracing();
生成的traceview文件會自動放在SDCARD上,沒有SDCARD卡會出現異常,所以使用這種方式需要確保應用的AndroidMainfest.xml中的SD卡的讀寫權限是打開的,其中hello是traceview文件的名字,是然後用adb導出traceview文件。

2.同樣是要先打開Android Device Monitor

這裏寫圖片描述
先選擇應用進程,然後點擊Start Method Profiling(開啓方法分析),按鈕會變爲Stop Method Profiling(停止方法分析),開啓方法分析後,對應用的目標頁面進行測試操作,測試完畢後停止方法分析,界面會自動跳轉到 DDMS 的 trace 分析界面。

兩種方式的對比:第一種方式更精確到方法,起點和終點都是自己定,不方便的地方是自己需要添加方法並且要導出文件,第二種方式的優缺點剛好相反。

2、分析方式
下面寫一個DEMO,來分別模擬調用次數不多,但每次調用卻需要花費很長時間的函數,和自身佔用時間不長,但調用卻非常頻繁的函數。

public class MainActivity extends Activity {
    int count = 0;
    long longCount=-1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Debug.startMethodTracing("hello");
        new Thread(new Runnable() {
            @Override
            public void run() {
                printNum();
            }
        },"printNum_thread").start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                calculate();
            }
        },"calculate_thread").start();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Debug.stopMethodTracing();
    }

    private void printNum() {
        for (int i = 0; i < 20000; i++) {
            print();
        }
    }
    private void   print(){
        count=count++;
    }
    private  void  calculate(){
        for (int i = 0; i < 1000; i++) {
            for (int j = 0; j < 1000; j++) {

                    for (int l = 0; l < 1000; l++) {
                        if(longCount>10){
                            longCount=-10;
                        }
                    }
            }
        }
       Log.e("MainActivity",String.valueOf(longCount));
    }
}

現在來分析一下采集的數據。先看線程面板
這裏寫圖片描述

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章