使用能源分析器檢查能源用量

藉由能源分析器,您可以找出應用程式使用較多電力的地方。

能源分析器會監控 CPU、網路無線電和 GPS 感應器的使用情形,並概略顯示這些元件的能源用量。能源分析器還會顯示會影響系統耗電量的系統事件 (Wake Lock、鬧鐘、工作和位置要求)。

能源分析器不會直接測量能源消耗量。而是使用模型估算裝置上每個資源的耗電量。

能源分析器總覽

當您在已連結的裝置或搭載 Android 8.0 (API 26) 或以上版本的 Android Emulator 上執行應用程式時,能源分析器會在「分析器」(Profiler) 視窗中顯示為一列。

如要開啟能源分析器,請按照下列步驟操作:

  1. 依序選取「檢視」(View) >「工具視窗」(Tool Windows) >「分析器」(Profiler),或按一下工具列中的「設定檔」(Profile)

    如果「選取部署目標」(Select Deployment Target) 對話方塊出現,請選擇您要用來部署應用程式的裝置,以便進行剖析。如果您已透過 USB 連結裝置,但清單中未列出該裝置,請確認您已啟用 USB 偵錯

  2. 在「能源」(Energy) 時間軸中點選任一位置,開啟能源分析器。

開啟能源分析器後,系統會立即開始顯示應用程式的預估能源用量。畫面應該會與圖 1 類似。

圖 1. 能源分析器中的時間軸。

如圖 1 所示,能源分析器的預設檢視畫面包括以下時間軸:

  1. 事件時間軸:顯示應用程式中您的應用程式在生命週期中轉換不同狀態時的活動。這個時間軸也指出了使用者與裝置的互動,包括螢幕旋轉事件。
  2. 能源時間軸:顯示應用程式的預估能源用量。
  3. 系統時間軸:指出可能影響能源消耗的系統事件。

如要按 CPU、網路和位置 (GPS) 資源及相關的系統事件查看能源用量細目,請將滑鼠游標指向「能源」(Energy) 時間軸上的長條。

檢查系統事件:Wake Lock、工作和鬧鐘

您可以使用能源分析器找出可能影響能源消耗的系統事件,包括 Wake Lock、工作和鬧鐘:

  • Wake Lock 是一種在裝置進入睡眠狀態時保持 CPU 或螢幕開啟的機制。舉例來說,播放影片的應用程式可能會使用 Wake Lock,讓裝置在使用者與裝置之間沒有任何互動時保持開啟。要求 Wake Lock 並不會耗用大量能源,但如未解除 Wake Lock,可能會造成螢幕或 CPU 保持開啟狀態超過所需時間,並因此迅速消耗電池。詳情請參閱使用 Wake Lock 功能的指南。

  • 您可以使用「鬧鐘」(alarm),在應用程式結構定義以外執行背景工作。鬧鐘響起時,可能會喚醒裝置並執行耗用大量能源的程式碼。詳情請參閱「使用鬧鐘」(working with alarms)指南。

  • 您可以使用「工作」(jobs),在特定條件 (例如網路可用) 下執行動作。您可以使用 JobBuilder 建立工作,並使用 JobScheduler 安排工作時間。在許多情況下,我們會建議您使用 JobScheduler 工作,而非使用鬧鐘或 Wake Lock。

  • 位置資訊要求使用 GPS 感應器,因此會耗用大量能源。如要瞭解如何發出節能位置要求,請參閱「最佳化電池位置」(Optimize location for battery)

藉由能源分析器,您可以輕鬆找到應用程式使用各項功能的位置,藉此決定應用程式的使用方式。

能源分析器會於系統事件生效期間,在「能源」(Energy) 時間軸下的「系統」(System) 時間軸下方顯示彩色長條 Wake Lock 會以紅色長條表示,工作和鬧鐘會以黃色長條表示,而位置事件則以淺紫色長條顯示。

圖 2 顯示能源分析器和程式碼編輯器打開,其原始碼為未發布的 Wake Lock 負責。

圖 2. 使用能源分析器找出 Wake Lock。

  1. 如要開啟「系統事件」(System Event) 窗格並顯示事件 (例如 Wake Lock) 的詳細資料,請在「能源」(Energy) 時間軸中選取時間範圍。
  2. 如要開啟「Wake Lock 詳細資料」(Wake Lock Details) 窗格,並顯示特定 Wake Lock 的詳細資料,請在「系統事件」(System Event) 窗格中選取 Wake Lock。
  3. 如要開啟程式碼編輯器並跳至 Wake Lock 的原始碼,請在呼叫堆疊頂端的「Wake Lock 詳細資料」(Wake Lock Details) 部分按兩下撥號方式窗格。
  4. 來源編輯器會醒目顯示取得 Wake Lock 的呼叫。

顯示其他系統事件的操作說明,與 Wake Lock 相同,在其詳細資料窗格中包含特定於每種事件的資訊。舉例來說,「工作詳細資料」(Job Details) 窗格會根據過去工作和工作完成的程式碼部分顯示呼叫堆疊。