Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 安卓性能調優工具簡介,安卓調優簡介

安卓性能調優工具簡介,安卓調優簡介

編輯:關於android開發

安卓性能調優工具簡介,安卓調優簡介


Traceview 

Traceview是執行日志的圖形查看器。這些日志通過使用Debug類記錄。 Traceview可以幫助調試應用和profile性能。本文參考英文地址:http://developer.android.com/intl/zh-cn/tools/debugging/debugging-tracing.html。

Traceview布局

Traceview可以加載trac日志文件(通過添加跟蹤代碼添加到應用或由DDMS生成)。TraceView的界面分為兩部分,上面是時間線面板(Time Panel),描述了當每個線程和方法的啟動和停止時間。下面是profile面板,概述方法所做的事情,如下圖所示:

時間線面板:

Traceview timeline panel

profile面板:

Traceview profile panel.

 

Name :調用項,前面的數字是編號,展開可以看到有的有Parent 和Children子項。
Incl : inclusive時間占總時間的百分比
inclusive : 子方法的調用時間和方法執行時間
Excl : 執行占總時間的百分比。
Exclusive : 方法執行時間,不包含子方法的時間。
Calls+Recur Calls/Total : 調用和重復調用的次數
Time/Call : 總的時間。(ms)

 

生成跟蹤日志

有兩種方法可以生成跟蹤日志:
在代碼中包含Debug類並調用其方法,如startMethodTracing()和stopMethodTracing(),這種方法很精確。
使用DDMS的profile分析功能來生成跟蹤日志。不太准確,不能夠訪問應用程序的代碼或不需要精確的記錄時間時使用。

注意:如果使用Debug類,應用程序必須具有外部存儲的寫權限(WRITE_EXTERNAL_STORAG​​E)。

    // start tracing to "/sdcard/calc.trace"
    Debug.startMethodTracing("calc");
    // ...
    // stop tracing
    Debug.stopMethodTracing();

應用調用startMethodTracing()時,系統會創建<trace-base-name>.trace文件。這包含二進制方法跟蹤數據和線程及方法名映射表。

然後系統開始緩沖生成的跟蹤數據,直到應用程序調用stopMethodTracing(),此時將其緩沖的數據寫入到輸出文件中。如果系統調用stopMethodTracing前達到最大緩沖器大小,系統停止trace並發送通知給控制台。

開啟profile時,解釋的代碼運行速度會較慢,並不代表實際執行速度。

在Android的4.4和更高版本,取樣會減少性能影響。使用startMethodTracingSampling()即可,停止依舊使用stopMethodTracing()。

執行實例:

C:\Users\Administrator>adb pull /mnt/sdcard/tc.trace /tmp/tc.trace

C:\Users\Administrator>adb shell am start -n com.mamlambo.article.simplecalc/.MainActivity
Starting: Intent { cmp=com.mamlambo.article.simplecalc/.MainActivity }

C:\Users\Administrator>adb shell am profile com.mamlambo.article.simplecalc start /mnt/sdcard/tc.trace

C:\Users\Administrator>adb shell am profile com.mamlambo.article.simplecalc stop


C:\Users\Administrator>adb pull /mnt/sdcard/tc.trace /tmp/tc.trace
1352 KB/s (2429326 bytes in 1.754s)


C:\Users\Administrator>traceview c:\tmp\tc.trace
The standalone version of traceview is deprecated.
Please use Android Device Monitor (tools/monitor) instead.

注意:若出現mkdir failed for img Read-only file system,在執行 adb shell 命令後執行mount -o remount ,rw /即可

另外要配置能讀存儲卡:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>

 生成調用關系圖:

dmtracedump -g output.png YourAppName.trace 

調用關系圖實例:

另外,trace文件用Android Studio的Android Device Monitor打開。

 

dmtracedump能根據trace log生成調用棧圖。該工具使用的Graphviz工具來創建圖形輸出。  每個節點的含義:<ref> callname (<inc-ms>, <exc-ms>,<numcalls>)。

dmtracedump的使用方法:

dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] <trace-base-name>

工具加載<trace-base-name>.data和<trace-base-name>.key。

參數

描述

-d <trace-base-name>

URL base to the location of the sortable javascript file

-g <outfile>

Generate output to <outfile>

-h

Turn on HTML output

-o

Dump the trace file instead of profiling

-t <percent>

Minimum threshold for including child nodes in the graph (child's inclusive time as a percentage of parent inclusive time). If this option is not used, the default threshold is 20%.

最低門檻,包括子節點圖中(孩子接點的包容性的時間占母接點包容性的時間)。如果不使用此選項,默認阈值是20%。

 

其他可以參考的資料:http://www.open-open.com/lib/view/open1430892721648.html。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved