<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      安卓筆記俠

      專注安卓開發

      導航

      TraceView工具的使用

      一、TraceView工具如何使用

      TraceView有4種啟動/關閉分析方式:

      (1) 第一種使用方法演示

      1、 選擇跟蹤范圍

      在想要根據的代碼片段之間使用以下兩句代碼

      Debug.startMethodTracing("love_world_");  
      Debug.stopMethodTracing(); 
      

      例如,onCreate與onStart方法之間方法跟蹤

      public class MainActivity extends Activity {  
        
          @Override  
          protected void onCreate(Bundle savedInstanceState) {  
              super.onCreate(savedInstanceState);  
              setContentView(R.layout.activity_main);  
                
              Debug.startMethodTracing("Love_World_");  
          }  
        
          @Override  
          protected void onStart() {  
              super.onStart();  
                
              Debug.stopMethodTracing();  
          }  
            
      }  
      

      2、添加SD卡訪問權限

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

      如果不添加,執行項目會出現以下異常

      java.lang.RuntimeException:Unable to open trace file '/mnt/sdcard/Love_World_.trace': Permission denied  
      

      如果手機沒有SD卡也會出現同樣的問題

       

      3、 導出traceview文件
      1  首先執行項目,查看trace文件是否生成
             進入shell模式

      adb shell 
      

      2 導出trace文件

      adb pull sdcard/Love_World_.trace  
      

       

      4、 打開trace文件

      打開trace文件需要Android提供的traceview.bat工具,工具所在目錄:sdk\tools\traceview.bat, 有兩種方式執行:
      1) 在命令行中切換到此目錄
      2) 將此目錄添加到系統環境變量中

      //  cmd在calc.trace所在目錄執行  
      traceview C:\Users\YourName\Desktop\Love_World_.trace  
      

      其中“C:\Users\YourName\Desktop\” 表示trace所在你系統中的目錄,此工具需要輸入trace文件的絕對路徑才行

      在新版本的SDK 會有以下提示:

      The standalone version of traceview is deprecated.  
      Please use Android Device Monitor (tools/monitor) instead.
      

      所以建議使用tools/monitor 啟動后跟Eclipse DDMS界面差不多,然后File -> Open File -> 選擇trace文件

       

      5、異常處理
      1 異常處理

      'C:\Windows\system32\java.exe' 不是內部或外部命令,也不是可運行的程序  
      或批處理文件。  
      SWT folder '' does not exist.  
      Please set ANDROID_SWT to point to the folder containing swt.jar for your platfo  
      rm.  
      

         配置Java環境變量,把java bin 添加到系統環境變量PATH中
      2 異常信息

      The standalone version of traceview is deprecated.  
      Please use Android Device Monitor (tools/monitor) instead.  
      Failed to read the trace filejava.io.IOException: Key section does not have an *  
      end marker  
              at com.android.traceview.DmTraceReader.parseKeys(DmTraceReader.java:420)  
        
        
              at com.android.traceview.DmTraceReader.generateTrees(DmTraceReader.java:  
      91)  
              at com.android.traceview.DmTraceReader.<init>(DmTraceReader.java:87)  
              at com.android.traceview.MainWindow.main(MainWindow.java:286) 
      

      通常是trace文件有異常,再重新生成并導出試試

      3. 沒有SD卡會出現異常

      Unable to open trace file '/sdcard/Love_World_.trace': Permission denied  
       Caused by: java.lang.RuntimeException: Unable to open trace file '/sdcard/Love_World_.trace': Permission denied  
      

      生成的trace系統自動放在SDCARD上,沒有sd卡所以會出現這種異常

       

      (2)  第二種使用方法演示

      Eclipse -> DDMS -> Start Method Profiling

      二者的區別,第一種方式更精確到方法,不方便的地方是自己需要添加方法并且要導出文件,第二種方式的優缺點剛好相反。

       

      (3) 任意時間點啟動與關閉trace

      啟動:am profile <PROCESS> start <FILE>關閉:am profile <PROCESS> stop
      <PROCESS> 填寫進程名,例如AndroidManifest.xml中聲明的包名,通常都是主進程名


      例如:  
      adb shell am profile com.example start ./mnt/sdcard/test.trace


      adb shell am profile com.example stop

      (4)  啟動指定Activity并進行trace

      am start -n <Package Name>/<Package Name>.<Activity Name> --start-profiler <FILE>

      例如:
      adb shell am start -n com.example/com.example.MainActivity --start-profiler ./mnt/sdcard/test.trace

       

      細節詳見官方文檔:
      http://developer.Android.com/tools/help/shell.html

       

      二、 TraceView工具面板介紹

      有兩方面用途: 

      1  查看跟蹤代碼的執行時間,分析哪些是耗時操作  

      2  可以用于跟蹤方法的調用,尤其是Framework層的方法調用關系

       

      獲取方法的調用順序

       

      1. 在traceview中搜索響應的方法名不能使用大寫字母

      2. 搜索出的方法會自動展開,其中包含Parents 和 Children 兩組信息

      3. 點擊Parents下的方法名,直接跳轉到調用當前的方法處。Children相反




      Traceview 面板分上下兩部分
      上面是時間軸面板 (Timeline Panel)
           左側顯示的是線程信息
           右側黑色部分是顯示執行時間段、白色是線程暫停時間段,
           右側鼠標放在上面會出現時間線縱軸,在頂部會顯示當前時間線所執行的具體函數信息
      下面是分析面板(Profile Panel) -  每一列內容

       

      Inclusive time  - 函數本身運行花費時間 + 函數調用其他函數時間

      Exclusive time - 函數本身運行花費時間。

      Calls + RecurCall/Total 調用 + 重復調用次數 / 函數總調用次數

      Cpu Time/Call 總的Cpu時間與總的調用次數之比
       

      表1-1  Profile Panel各列作用說明

      列名

      描述

      Name

      該線程運行過程中所調用的函數名

      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

      同CPU Time/Call類似,只不過統計單位換成了真實時間

       
       

      三、如何進行具體的分析

      有兩個問題需要解決:

       

      1. 如何定位到所關心的地方? 

      上面只是介紹了如何使用TraceView且有兩種用法,但是有時使用第一種方式范圍又不太精確,使用第二種添加代碼的方式,可能有些地方又監聽不到。這種情況可以嘗試把開始或者結束放到延遲線程中,延遲一段時間在執行開始或者結束。

       

      2. 如何查找出哪些地方比較耗時?

      TraceView羅列出了是所有監聽到的方法,當然也包括Android系統很多方法的耗時,如何在這么多方法里面查找到自己關心的? 可以通過TraceView 底部的find 來查找,通常Android app都是有包名的,可以先針對某些關心的列排序后,在通過包名進行一個個查找,這些就省去自己篩選出自己app 方法耗時排行的時間。

       

      四、 相關資料:

       

      Android系統性能調優工具介紹 (還有具體如何使用進行性能分析的例子,非常棒)
      Profiling with Traceview and dmtracedump
      Android 編程下的 TraceView 簡介及其案例實戰 (含例子)

       

      念茜 : Android代碼調試工具 traceview 和 dmtracedump的波折演繹 

       

      原文地址: http://blog.csdn.net/love_world_/article/details/8223805

        

        

        

        

        

        

        

        

        

       

      posted on 2016-10-20 23:25  安卓筆記俠  閱讀(1453)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 一区二区中文字幕久久| 国产精品美女久久久久久麻豆| 国产精品亚洲二区在线播放| 亚洲精品日韩在线观看| 国产日韩综合av在线| 正在播放国产剧情亂倫| 99精品国产一区二区三 | 亚洲顶级裸体av片| 久久夜色国产噜噜亚洲av| 国产成AV人片在线观看天堂无码| 汉中市| 久久永久视频| 日韩中文字幕人妻精品| 拜泉县| 亚洲欧美激情在线一区| 无码国产精品一区二区VR老人 | 亚洲综合色区另类av| 亚洲一线二线三线品牌精华液久久久 | 日韩美女一区二区三区视频| 色狠狠色婷婷丁香五月| 西吉县| 久久夜色精品久久噜噜亚| 韩国19禁无遮挡啪啪无码网站| 虎白女粉嫩尤物福利视频| 亚洲人成人无码网WWW电影首页| 国产四虎永久免费观看| 国产精品一区二区三区日韩| 人妻少妇久久中文字幕| 亚洲精品福利一区二区三区蜜桃| 亚洲av成人一区在线| 阿合奇县| 四虎永久免费很黄的视频| 国内不卡不区二区三区| 九九热在线观看视频免费| 国产99久60在线视频 | 传媒| 亚洲综合成人一区二区三区| 少妇被多人c夜夜爽爽av| 国产永久免费高清在线观看| 久久亚洲精品中文字幕馆| 一个人在线观看免费中文www| 在线天堂最新版资源|