Android 工具:TraceView
一、TraceView工具
TraveView采集和分析方法的執行時間和數據,用于跟蹤你的代碼中的性能下降問題;
二、啟動TraveView
Android Studio->Tools->Android->Android Device Monitor->DDMS;
三、使用TraveView
這里有兩種方式,來生trace日志文件:
1. 在你的代碼中使用Debug類 ,調用它的startMethodTracing()和stopMethodTracing()方法,來啟動和暫停收集trace日志信息。這種方式非常精確,因為你可以在你的代碼中指定從哪里開始和結束收集trace日志信息;
2. 使用DDMS中的Method Profiling功能來生成trace日志,這種方法精確性比較低,但是在你無法訪問代碼或者不需要精確日志的時候比較有用;
下面我們分別使用如下兩種方式生成日志信息;
方法一:
在想要分析的代碼中加入Debug類的startMethodTracing()和stopMethodTracing()方法調用(比如分析某個Activity從onCreate到onDestroy生命周期的方法調用),并且在AndroidManifest.xml中添加相關權限;
MainActivity.java
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.qunar.home"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><application>... ...</application> </manifest>運行到該Activity頁面,然后退出(執行了該Activity的onCreate和onDestroy方法),生成的日志會保存在你的設備的手機SD卡中。使用adb pull命令獲取該日志文件;
D:\>adb pull ./data/media/0/Android/data/com.qunar.home/files/home.trace [100%] ./data/media/0/Android/data/com.qunar.home/files/home.trace注意:如果在設備的SD卡中找不到trace日志文件,可以進入adb shell,使用find . -name
“*.trace”命令進行查找;
DDMS->File->Open File打開獲取的trace日志文件進行分析,如下文圖示;
方法二:
Devices->選擇app->點擊Start Method Profiling按鈕->Profiling Options->Sample based Profiling(Sampling frequency:1000microseconds)->OK按鈕;
運行你的App,如果你關注用戶體驗的性能問題,執行相關對的操作,完畢后點擊Stop Method Profiling按鈕。等待trace加載,如果你記錄了比較長時間它可能會花費較長的時間;
TraceView包含幾個部分:Timeline面板、Profile面板和Find搜索框:
Timeline面板:可以看見你的代碼隨時間的執行順序,使用鼠標拖拽Timeline可以放大和縮小查看,放大時每個方法會擴展成一個彩色的U型圖,圖的左邊是方法執行的開始,右邊是結束;
- 每行代表一個線程;
- 在Timeline上每個條代表一個方法的執行;
- 不同的方法顯示不同的顏色,你可以看見一個方法的執行時間內顏色是相同的;
Profile面板:顯示了某個線程(你在Timeline面板中選擇的線程)中各個函數的調用情況;
- 選擇一個方法來查看誰調用了它(Parent)和它調用了誰(Children);
- 被選中的方法也會在Timeline中高亮顯示;
- 這些列分別顯示了CPU執行時間和調用次數等信息,如下:
Incl Cpu Time:某函數占用的CPU時間,包含內部調用其它函數的CPU時間;
Excl Cpu Time:某函數占用額CPU時間, 但不包含內部調用其它函數的CPU時間;
Incl Real Time:某函數運行的真實時間(以毫秒為單位),內含調用其它函數所占用的真實時間;
Excl Real Time:某函數運行的真實時間(以毫秒為單位),不含調用其它函數所占用的真實時間;
Call+Recur Calls/Total:某函數被調用的次數以及遞歸調用次數的百分比;
Cpu Time/Call:某函數調用CPU時間和調用次數的比,相當于該函數平均執行時間;
Real Time/Call:某函數調用真實時間和調用次數的比,相當于該函數平均真實執行時間;
Find輸入框:可以搜索你感興趣的方法,高亮顯示在Timeline上;
1.新技術,新未來!歡迎大家關注“1024工場”微信服務號,時刻關注我們的最新的技術訊息。(甭客氣!盡情的掃描或者長按!)
總結
以上是生活随笔為你收集整理的Android 工具:TraceView的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android -- 性能优化】启动速
- 下一篇: Win10 启动项找不到ctfmon项,