分析應用程式效能

如果應用程式回應速度緩慢、顯示斷斷續續的動畫、系統凍結或耗電過多,就算是效能欠佳。修正效能問題時,您需要剖析應用程式,或找出應用程式低效率使用資源的情況 (例如 CPU、記憶體、圖形或裝置電池)。本主題說明 Android Studio 工具和技術,可用來修正常見的效能問題。

如要瞭解如何在不執行完整 Android Studio IDE 的情況下執行獨立分析器 (僅限 Windows 或 Linux),請參閱「執行獨立分析器」。

需求條件

如要剖析應用程式,建議您準備下列項目:

  • 應用程式含有已啟用 profileable 資訊清單設定的發布版建構變化版本,也稱為可分析的應用程式。根據預設,應用程式會將這項設定設為 true。如要查看或變更這項設定,請開啟應用程式的資訊清單或 AndroidManifest.xml 檔案,然後在 <application> 部分查看 profileable 資訊清單設定:

    <profileable android:shell="true" />
    
  • 搭載 API 級別 29 以上版本,且具備 Google Play 的虛擬或實體測試裝置。

  • Android Gradle 外掛程式 7.3 以上版本。

可分析的應用程式與可偵錯的應用程式

可分析的應用程式可讓您執行最常見的剖析工作,但如果您需要記錄 Java/Kotlin 配置或擷取記憶體快照資料,則應改用可進行偵錯的應用程式。在可進行偵錯的應用程式程序和搭載 API 級別 26 以上版本的裝置上,您也可以在提供「Interaction」時間軸的任務檢視畫面中,查看使用者互動和應用程式生命週期事件。

可進行偵錯的應用程式會以應用程式的 debug 建構變數為基礎,讓您使用 偵錯工具等開發工具;不過,這會產生一些效能損耗。可進行剖析的應用程式是以應用程式的 release 建構變化版本為基礎,並啟用常見剖析工作子集,而不會產生偵錯版本的效能額外負擔。

建構及執行可分析的應用程式

如要在 Android Studio 中建構及執行可分析的應用程式,請按照下列步驟操作:

  1. 如果您還沒有執行/偵錯設定,請建立
  2. 選取發布變化版本 (依序點選「Build」>「Select Build Variant」)。
  3. 依序點選「More actions」(更多動作) >「Profile 'app'」(使用完整資料) 或「Profile 'app' with 完整資料」(「app」是執行設定的名稱,因此名稱可能有所不同)。如要選擇這兩種選項,請參閱「規範」。應用程式會在測試裝置上開啟,Android Studio 中也會開啟「Profile」窗格。

如果這些操作說明無法解決問題,請參閱「手動建構及執行可剖析的應用程式」。

開始剖析

如要開始剖析工作,請按照下列步驟操作:

  1. 在「Profiler」窗格中的「Home」分頁中,從清單中選取程序。在大多數情況下,您應該選取代表應用程式的頂層程序。

    Profiler 首頁分頁
  2. 從「Tasks」專區選取剖析工作。如要進一步瞭解這些工作,請參閱本節的其他頁面。並非所有程序都能使用所有剖析工作。如果不知道從何處著手,請即時檢查應用程式,全面掌握成效活動。

  3. 使用「Start profiler task from」下拉式選單,選取是否要從啟動時啟動分析器工作,或是在程序執行時附加至該程序。如果您正嘗試縮短應用程式啟動時間,或擷取應用程式啟動期間發生的程序,則應納入啟動程序;否則,則可以根據應用程式目前的狀態開始剖析。

  4. 按一下「啟動分析器工作」。工作會在各自的分頁中開始。

  5. 與應用程式互動,觸發活動。

  6. 停止錄音 (如適用)、等待系統剖析,然後查看結果。

比較、匯出及匯入追蹤記錄

停止剖析工作後,系統會自動將該工作儲存在「Profiler」窗格中的「過去的錄製內容」分頁中。您可以使用這些已儲存的記錄,比較不同情境下的資源用量。錄音檔會保存在目前的 Android Studio 工作階段期間。如果您希望將錄製內容保留更長的時間,請按一下「Export Record」圖示 匯出。部分追蹤類型無法匯出。

如要匯入追蹤記錄 (例如從先前執行的 Android Studio 匯入),請按一下「過去錄製內容」分頁中的「匯入錄製內容」,然後選取追蹤記錄檔案。您也可以將檔案拖曳至 Android Studio 編輯器視窗來匯入檔案。

編輯錄音設定

如要編輯分析器工作記錄設定,請按一下分析器設定 。您可以切換兩個主要設定:

  • 針對涉及取樣的工作,「樣本間隔」代表每個樣本的間隔時間。指定的間隔時長越短,達到記錄資料量上限的速度就越快。
  • 「檔案大小上限」代表可寫入已連結裝置的資料量。停止錄製時,Android Studio 會解析資料,並將結果顯示在分析器視窗中。因此,當您增加上限並錄製大量資料,Android Studio 將需要特別長的時間來解析檔案,甚至會無法做出回應。