利用 Android Profiler 測量應用效能
Android Studio 3.0 採用全新的 **Android Profiler ** 視窗取代 Android Monitor 工具。 這些全新的分析工具能夠提供關於應用 CPU、記憶體和網路 Activity 的實時資料。 您可以執行基於樣本的函式跟蹤來記錄程式碼執行時間、採集堆轉儲資料、檢視記憶體分配,以及檢視網路傳輸檔案的詳情。
要開啟 Android Profiler 視窗,請按以下步驟操作:
-
點選 View > Tool Windows > Android Profiler (也可以點選工具欄中的 Android Profiler
image
)。
-
在 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

image
。
[圖片上傳失敗...(image-b12c61-1552381527876)]
圖 1.Android Profiler 共享時間線檢視 此共享時間線檢視只顯示時間線圖表。 要使用詳細分析工具,請點選與您想檢視的效能資料對應的圖表。 例如,要使用工具檢視堆資料和跟蹤記憶體分配,可點選 MEMORY 圖表。 以下連結頁面介紹了各個對應分析器視窗的更多資訊。
但並不是所有分析資料均預設可見。 如果您看到一條訊息,顯示“Advanced profiling is unavailable for the selected process”,則需在執行配置中 啟用高階分析 。
要詳細瞭解各個分析工具,請參閱以下內容:
<devsite-heading ds-is="heading" text="啟用高階分析" id="advanced-profiling" level="h3" link="" toc="" class="" style="box-sizing: inherit; display: block; margin-right: -40px !important; padding-right: 40px !important; color: rgb(32, 33, 36); font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">### 啟用高階分析</devsite-heading>
要顯示高階分析資料,Android Studio 必須在您編譯後的應用中插入監控邏輯。 高階分析工具提供的功能包括:
- Event 時間線(所有分析器視窗中均有)
- 分配物件數量(Memory Profiler 中)
- 垃圾回收 Event(Memory Profiler 中)
- 有關所有傳輸的檔案的詳情(Network Profiler 中)
要啟用高階分析,請按以下步驟操作:
- 選擇 Run > Edit Configurations 。
- 在左側窗格中選擇您的應用模組。
- 點選 Profiling 標籤,然後勾選 Enable advanced profiling 。
現在重新構建並執行您的應用,即可獲取完整的分析功能。 但請注意,高階分析會減緩您的構建速度,所以僅當您想要開始分析應用時才啟用此功能。
注:對於原生程式碼,不可使用高階分析功能。 如果您的應用是純原生應用(不含 Java Activity
類),則不可使用高階分析功能。 如果您的應用使用了 JNI,則可使用部分高階分析功能,例如 Event 時間線、GC Event、Java 分配物件和基於 Java 的網路 Activity,但不能檢測基於原生的分配和網路 Activity。