Android耗電分析
Android8.0以上的系統
Energy Profiler監控CPU,網路無線電和GPS感測器的使用情況,並顯示每個元件使用多少電量的視覺化。Energy Profiler還會顯示可能影響能耗的系統事件(喚醒鎖定,警報,作業和位置請求)。
Energy Profiler不直接測量能耗。它使用一種模型來估算裝置上每種資源的能耗。
Energy Profiler概述
當您在執行Android 8.0(API 26)或更高版本的已連線裝置或Android Emulator上執行應用程式時,Energy Profiler將顯示為 Profiler 視窗的一行。
要開啟Energy Profiler,請按照下列步驟操作:
- 選擇 View> Tool Windows> Profiler 或單擊工具欄中的
image.png
- 單擊時間軸中的任意位置以開啟Energy Profiler。
開啟Energy Profiler時,它會立即開始顯示應用程式的估計能耗。你應該看到類似於圖1的東西。

圖1
如圖1所示,Energy Profiler的預設檢視包括以下時間軸:
1
事件時間軸:顯示應用在其生命週期中的不同狀態轉換時的活動。此時間線還指示使用者與裝置的互動,包括螢幕旋轉事件。
2
能源時間表:顯示應用的估計能耗。
3
系統時間線:表示可能影響能耗的系統事件。
要檢視CPU,網路和位置(GPS)資源以及相關係統事件的能源使用情況,請將滑鼠指標放在能源時間軸中的條形圖上 。
檢查系統事件:喚醒鎖定,作業和警報
您可以使用Energy Profiler查詢可能影響能耗的系統事件,包括喚醒鎖定,作業和警報:
-
一個
喚醒鎖
是保持裝置不進入睡眠狀態的機制。例如,播放視訊的應用可以使用喚醒鎖定,以便在沒有使用者與裝置互動時保持螢幕開啟。請求喚醒鎖定不是一項能耗密集型操作,但未能釋放喚醒鎖定會導致螢幕或CPU保持開啟狀態的時間超過必要時間,這會導致電池快速耗盡。 -
可以使用
警報
定期在應用程式上下文之外執行後臺任務。當警報響起時,它可能會喚醒裝置並執行能耗密集型程式碼。 -
可以使用
jobscheduler
在指定條件下執行操作,例如網路可用時。您可以建立作業JobBuilder
並使用它們進行計劃JobScheduler
。在許多情況下,推薦的方法是使用具有JobScheduler
而不是警報或喚醒鎖定的作業。 -
位置請求使用GPS感測器,會消耗大量電量。
Energy Profiler可找到應用程式使用這些功能的位置,以便就每種功能的使用方式做改進的決策。
所述能源探查示出了一個彩色編碼欄 系統 下面的時間線 能量 的時間表,用於當系統事件是活動的時間段。喚醒鎖用紅色條表示,作業和警報用黃色條表示,位置事件用淺紫色條表示。
圖2顯示了Energy Profiler和程式碼編輯器,它對原始碼開放,負責未釋出的喚醒鎖定。

圖2.使用Energy Profiler查詢喚醒鎖定
1
要開啟“ 系統事件”窗格並顯示喚醒鎖定等事件的詳細資訊,在“ 能源”時間軸中選擇一個時間範圍。
2
要開啟“ 喚醒鎖定詳細資訊”窗格並顯示特定喚醒鎖定的詳細資訊,在“ 系統事件”窗格中選擇喚醒鎖定。
3
要開啟程式碼編輯器並跳轉到喚醒鎖定的原始碼,在“ 喚醒鎖定詳細資訊”窗格中雙擊呼叫堆疊頂部的呼叫方法條目。
4
獲取喚醒鎖定的呼叫在原始碼編輯器中突出顯示。
顯示其他系統事件詳細資訊的說明與喚醒鎖定基本相同,其詳細資訊窗格中包含特定於每種事件的資訊。例如,“ 作業詳細資訊”窗格顯示排程作業的程式碼部分以及作業完成位置的呼叫堆疊。