安卓逆向_11 --- methodprofiling(方法分析)【在 smali 代码中打印信息 --- 协议分析常用】
?
From【修改 smali 代碼打印信息】:https://www.bilibili.com/video/BV1UE411A7rW?p=38
【Android】開發優化之 --- 調優工具:TrackView、Method Profiling:https://blog.csdn.net/fcly2013/article/details/38080333
?
?
TrackView、Method Profiling
?
Android?SDK 自帶的 tool TrackView 位于 sdk 的 tools 目錄下。用法為:進入到 tools下,運行
traceview e:\loginActivityTracing.trace即可。那 trace 文件怎么生成的呢。
?
?
有兩種方式生成
?
1、使用代碼生成,想調哪調哪。
只需要在需要調用的地方調用
Debug.startMethodTracing("loginActivityTracing");和結束調用的地方調用
Debug.stopMethodTracing();就會在 sd 卡的根目錄生成 loginActivityTracing.trace 文件。
?
2、沒有代碼呢,可以使用 DDMS 來生成。
這是開始,然后同一個按鈕再點一次就生成 .trace 文件并打開了。
執行之后可以看到這樣一個圖片:
?
?
TraceView 界面信息介紹
TraceView 界面包括 時間面板 和 方法面板
- (1) 時間面板 ( Timeline Panel ):時間面板展示了每個線程的執行情況,其中的[1]main即為ui主線程。移動到某個位置可以查看該點對應的方法的執行信息,點擊方法面板則會選中相應的方法。可以左鍵按住不放選中區域放大局部精細查看,不同方法用不同顏色標注
- (2) 方法面板 ( Profile Panel ):方法面板展示了所有方法的執行情況,點擊某個方法可以查看在對應線程上的執行時間區域,并會顯示其父方法及子方法。每個方法包括如下信息列,可點擊某列進行排序,從而確定產生性能問題的函數:Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call 。
所有的 Time 都是以毫秒計算。每列具體含義及作用如下:
- a. Incl表示將所有子函數耗時也計算在內,Excl則表示不包括子函數的調用時間。對比可以確定耗時操作發生是自身還是子函數中。
- b. Cpu Time表示占用cpu執行的時間,Real Time包括Cpu Time以及等待、切換的時間等,所以一般都大于Cpu Time。對比可以判斷耗時操作是否在cpu執行段內。
- c. 上面四個指標對應的%表示函數在總時間的占比。方便查看某個函數的時間占比。
- d. Calls+RecurCalls/Total表示被外部調用次數+遞歸次數/總次數。可以查看調用次數是否符合自己預期。
- e. Cpu Time/Call, Real Time/Call表示總的Cpu Time及Real Time與總調用次數的比例。查看每次調用的耗時,一般可通過簡單此項確定每個函數的性能。
常用字段的屬性說明如下:
列名 ??????????????????????????描述
Name ???????????????????????該線程運行過程中所調用的函數名
Incle 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 ??????某函數調用CPU的真實時間;
?
?
?
?
總結
以上是生活随笔為你收集整理的安卓逆向_11 --- methodprofiling(方法分析)【在 smali 代码中打印信息 --- 协议分析常用】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: find 和 xargs 和 locat
- 下一篇: 精益创业~如何驾驭愿景