android使用traceView進行效能測試

來源:互聯網
上載者:User

標籤:android   traceview   效能   最佳化   

在android開發中,經常會需要最佳化apk的效能,然而那些方法是比較耗費效能的,哪些方法又是比較佔用記憶體的,我們很難得知,好在google為我們提供了一個工具,traceView,該工具在sdk的tools檔案夾裡邊,只要配置了環境變數,就可以直接使用的。

traceView是Android中為開發人員提供的一個可視化的工具,用來評測app中每一個方法啟動並執行效能。

我首先編寫一個簡單的activity,如下:

package com.example.testtrace;import android.app.Activity;import android.os.Bundle;import android.os.Debug;import android.view.Menu;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Debug.startMethodTracing("haha");        calcuteAdd();        calcutePlus();    }    public void calcuteAdd() {        int sum = 0;        for (int i = 0; i < 10000; i++) {            sum += i;        }    }    public void calcutePlus() {        int total = 100000;        for (int i = 0; i < 3000; i++) {            total -= i;        }    }    @Override    protected void onStop() {        // TODO Auto-generated method stub        super.onStop();        Debug.stopMethodTracing();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}

代碼很簡單,就是分別運行了加法和減法這兩個方法。細心的碼農可能已經發現,我在onCreate方法中運行了一個方法

Debug.startMethodTracing("haha");

在onStop方法中運行了一個方法:

Debug.stopMethodTracing();

沒錯,就是在onCreate方法當中開啟資料的採集,在onStop方法當中停止資料的採集。其中”haha”是採集到的資料儲存的檔案名稱.

將應用安裝到sdcard上,然後再sdcard上會產生一個haha.trace檔案,然後將該haha.trace檔案匯出,通過sdk中的tools目錄下的traceview來進行分析.

我們首先將儲存在sdcard根目錄的”haha.trace”拷貝到本地,然後執行”traceview d:/haha.trace”,注意必須要首先配置traceview的環境變數。此時會看到下面這樣一個面板:

左邊就是我們啟動並執行方法:每一個方法都有一個parent和children,其中:
parent:表示那個方法調用了這個方法
children:表示該方法調用了那些方法
在所有的方法右邊有很多的選項卡,下面逐個解釋其代表的含義:
1.Incl Cpu Time%
該方法運行期間所執行的時間與總時間的百分比
2.Incl Cpu Time
該方法本身運行需要的時間
3.Excl Cpu Time%
不包括子方法,也就是自己本身啟動並執行時間佔總時間的百分比
4.Excl Cpu Time
不計入該方法中調用其他方法的時間,所以看那個方法消耗效能,主要是看這個參數的值
5.Incl Real Time%
改方法本身啟動並執行真即時間佔總時間的百分比
6.Incl Real Time
該方法本身啟動並執行時間
7.Excl Real Time%
該方法本身佔用cpu的時間和該方法本身啟動並執行時間和總時間的百分比
8.calls+recurcalls/total
該方法運行期間被調用的總次數
9.cpu time/call
運行期間,該方法運行所需要的時間

可以啊看到我們在activity中寫的一個calcuteAddF方法的各個方面的指數:

ok,關於traceview的學習就到這裡了,希望大家能夠喜歡。

android使用traceView進行效能測試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.