1. 程式人生 > >Android之測量APP效能概覽(一)

Android之測量APP效能概覽(一)

如果應用程式響應緩慢、顯示不穩定的動畫、凍結、崩潰或消耗大量電力,則認為其效能很差。為了避免這些效能問題,使用本頁中列出的分析工具來識別應用程式在哪裡低效使用資源,例如CPU、記憶體、圖形、網路和裝置電池。

Note: While profiling an app, you should disable Instant Run

分析方式有兩類:Android Studio tools、Command line tools

一、Android Studio tools

1、利用 Android Profiler 測量應用效能

Android Studio 3.0 採用全新的 **Android Profiler ** 視窗取代 Android Monitor

 工具。 這些全新的分析工具能夠提供關於應用 CPU、記憶體和網路 Activity 的實時資料。 您可以執行基於樣本的函式跟蹤來記錄程式碼執行時間、採集堆轉儲資料、檢視記憶體分配,以及檢視網路傳輸檔案的詳情。

要開啟 Android Profiler 視窗,請按以下步驟操作:

  1. 點選 View > Tool Windows > Android Profiler(也可以點選工具欄中的 Android Profiler )。
  2. 在 Android Profiler 視窗頂部(如圖 1 所示),選擇您想要分析的裝置 1 和應用程序 2。

    如果您通過 USB 連線了某個裝置但該裝置未在裝置列表中列出,請確保您已啟用 USB 除錯

     

    如果您使用的是 Android Emulator 或已取得 root 許可權的裝置,Android Profiler 將列出所有正在執行的程序,即使這些程序可能無法除錯。 當您釋出可除錯應用時,將會預設選擇此程序。

Android Profiler 目前可顯示共享時間線檢視(圖 1),其中包括帶有 CPU、記憶體和網路使用資訊實時圖表的時間線。 分析器視窗還包含時間線縮放控制元件 3、實時更新跳轉按鈕 4,以及顯示 Activity 狀態、使用者輸入 Event 和螢幕旋轉 Event 的 Event 時間線5。

當您啟動 Android Profiler 後,它會持續收集分析資料,直至您斷開裝置連線或點選 Close

但並不是所有分析資料均預設可見。 如果您看到一條訊息,顯示“Advanced profiling is unavailable for the selected process”,則需在執行配置中啟用高階分析。

要顯示高階分析資料,Android Studio 必須在您編譯後的應用中插入監控邏輯。 高階分析工具提供的功能包括:

  • Event 時間線(所有分析器視窗中均有)
  • 分配物件數量(Memory Profiler 中)
  • 垃圾回收 Event(Memory Profiler 中)
  • 有關所有傳輸的檔案的詳情(Network Profiler 中)

要啟用高階分析,請按以下步驟操作:

  1. 選擇 Run > Edit Configurations
  2. 在左側窗格中選擇您的應用模組。
  3. 點選 Profiling 標籤,然後勾選 Enable advanced profiling

現在重新構建並執行您的應用,即可獲取完整的分析功能。 但請注意,高階分析會減緩您的構建速度,所以僅當您想要開始分析應用時才啟用此功能。

注:對於原生程式碼,不可使用高階分析功能。 如果您的應用是純原生應用(不含 Java Activity 類),則不可使用高階分析功能。 如果您的應用使用了 JNI,則可使用部分高階分析功能,例如 Event 時間線、GC Event、Java 分配物件和基於 Java 的網路 Activity,但不能檢測基於原生的分配和網路 Activity。

二、Command line tools

systrace

The systrace command allows you to collect and inspect timing information across all 

dumpsys

dumpsys is a tool that runs on Android devices and provides information about system services. 

dmtracedump

dmtracedump is a tool that generates graphical call-stack diagrams from trace log files. The tool 

 

總結,命令行鍼對性較強,一般使用studio就能滿足基本的新能分析。