Android Studio 3.0 中的 Android Profiler

在Android Studio 3.0中, 新的Android Profiler窗口會代替Android Monitor 工具。新的性能分析工具爲你的app提供 cpu , 內存,網絡活動的實時數據。你可以執行一個樣例方法用來追蹤你的代碼的執行時間、捕獲堆存儲、查看內存分配和網絡傳輸的詳情。

打開Android Profiler 窗口需要下面這些步驟:

1.點擊 View > Tool Windows > Android Profiler (你也可以在工具欄中點擊 Android Profiler )

2.在 Android Profiler 窗口的頂部,如圖1所示,選擇你想要分析的設備 1 和進程 2。如果你已經使用USB連接到一臺設備上但並沒有看到它在列表上,檢查你的設備,確保它開啓了USB調試模式。

如果你使用的是 Android 模擬器或者是已經被 root 的設備,
那Android Profiler 將會列出所有的進程,甚至是那些不允許被調試的進程。

Android Profiler 現在會展示一個共享的時間線視圖(圖1),其中包含一個具有 CPU 、內存和網絡使用實時的時圖表的時間線。窗口當然也包含時間線縮放控制 3、跳轉到實時更新的按鈕 4 以及一個展示活動狀態 、用戶的輸入事件和屏幕旋轉事件的事件時間線 5

**圖1**. Android Profiler 的標準時間線視圖

共享時間線視圖只展示時間線圖表。如果想查看詳細的分析工具,只需要點擊符合你想查看性能數據的視圖。例如,想要訪問攔截堆和追蹤內存分配工具,點擊MEMORY圖表即可。下面的鏈接提供了關於每個相應分析窗口的更多信息。

但是,並不是所有的分析數據都是默認可見的。如果你看到一條消息說「Advanced profiling is unavailable for the selected process」,那你就需要在你的運行配置中開啓 advanced profiling。

關於每個分析器的更多文檔,查看下面鏈接:

開啓 advanced profiling

爲了向你展示 advanced profiling 數據, Andorid Studio 需要在你的編譯app中添加監視邏輯。advanced profiling 提供的特性包含:

  • 所有 Profiler Windows 的時間線

  • Memory Profiler 中分配對象的數量

  • Memory Profiler 中 GC 的事件

  • 關於 Network Profiler 中所有傳輸文件的詳情

開啓 advanced profiling, 需要這些步驟:

  1. 選擇 Run > Edit Configurations

  2. 在左邊的面板選擇你的app模塊。

  3. 點擊 Profiling 選項卡然後選擇 Enable advanced profiling

現在你可以再次的運行和構建你的app,來訪問完整的性能分析。 但是,請注意 advanced profiling 會拖慢你的構建速度,所以你應該只有在你想要分析你的app的時候開啓。

注意: Advanced profiling 對 native code 是無效的。如果你的 app 是一個純 native code app (它沒有一個 Java Activity 累),advanced profiling 功能是無效的。 如果你的 app 使用 JNI, 有些 advanced profiling 功能是有效的, 例如時間線、GC 事件、Java 分配對象和基於 Java 的網絡活動, 但 它不能發現基於原生的分配和網絡活動。