當前位置: 妍妍網 > 碼農

借助 Android Studio 中的功耗效能分析器進行 A/B 測試

2024-05-17碼農

作者 / Android Studio 產品經理 Mayank Jain 和軟體工程師 Yasser Dbeis

我們知道 Android 開發者一直希望找到能在不同 Android 裝置上最佳化功耗的工具。

Android Studio 中全新的 功耗效能分析器 可顯示裝置在執行套用時的功耗,從而為 Android 開發者提供幫助。了解各種 Android 裝置上的功耗有助於 Android 開發者辨識和解決其套用中的功耗問題。您可以執行 A/B 測試來比較不同演算法、功能甚至不同版本套用的功耗。

△ Android Studio 中全新的功耗效能分析器

  • 功耗效能分析器
    https://developer.android.google.cn/studio/profile/power-profiler

  • 針對低功耗進行最佳化的套用可以改善裝置的電池和散熱效能,這意味著 Android 提供的使用者體驗也將得到改善。

    在 Pixel 6 及之後推出的 Pixel 裝置上,裝置端功耗管理器 (ODPM) 可提供功耗數據,該數據會按照名為 "電源軌 (Power Rails)" 的子系統進行細分。有關受支持子系統的列表,您可以查閱官方網站了解有關 可分析電源軌 的詳細資訊。

  • 可分析電源軌
    https://developer.android.google.cn/studio/profile/power-profiler#power-rails

  • 功耗效能分析器可以幫助套用開發者檢測以下幾個方面的問題:

  • 檢測功耗超出必要範疇的未最佳化程式碼。

  • 尋找導致非必要 CPU 占用的後台任務。

  • 辨識在非必要時使裝置保持喚醒狀態的喚醒釘選。

  • 一旦辨識出功耗問題,功耗效能分析器便可透過測試不同的假設,了解造成套用功耗過高的原因。例如,如果問題是由後台任務引起的,那麽開發者可以嘗試阻止任務在非必要情況下執行或長時間執行。如果問題是由喚醒釘選引起的,那麽開發者可以嘗試在不使用資源時釋放喚醒釘選,或以更明智的方式使用它們。然後,開發者就可以使用功耗效能分析器比較變更前後的功耗區別。

    本文將展示 A/B 測試幫助您理解您套用的功耗特征會如何隨著同一功能的不同版本產生變化,並且幫助您有效地測量這些變化。歡迎您繼續閱讀,了解更多詳情。

    實範例:功耗效能分析器
    可幫助您改善套用電池續航時間

    假設您有一款套用,使用者可以透過該套用購買他們最喜歡的電影。

    △ 範例套用,用於演示測量功耗的 A/B 測試

    視訊 (c) 版權所有 Blender 基金會 | www.bigbuckbunny.org

    隨著您的套用越來越流行並為人所熟知,您會發現每次啟動套用時,高畫質 4K 視訊都需要很長時間才能載入完畢。由於該視訊較大,您希望了解載入該視訊對裝置功耗的影響。

    最初,該視訊是以 4K 畫質呈現的,旨在以最佳畫質向您的使用者展示電影的精彩片段。

    但在視訊載入時間過長的情況下,您或許會考慮:

  • 您是否真的需要在主頁上顯示 4K 視訊?

  • 每次執行套用時都透過網路載入 4K 視訊是否有意義?

  • 如果您將 4K 視訊替換為畫質較低的視訊 (但仍保留視訊的觀感),套用的功耗特征將會發生什麽變化?

  • 針對功耗進行 A/B 測試的

    最佳場景

    透過 A/B 測試,您可以測試視訊功能不同的兩個變體,從而選擇功耗特征更好的變體。

    場景 A : 執行套用時在螢幕上播放 4K 視訊,並測量功耗

    場景 B : 執行套用時在螢幕上播放分辨率較低的視訊,並測量功耗

    A/B 測試設定

    讓我們花點時間設定 Android Studio 效能分析器,以便進行此 A/B 測試。我們需要啟動套用,並將 CPU 效能分析器附加到套用上,然後觸發系統跟蹤 (功耗效能分析器將顯示在此處)。

    第 1 步

    點選選單 > 編輯,以建立自訂 "Run configuration" ( 執行配置 )

    △ 自訂執行配置

    第 2 步

    然後,選擇 "Profiling" (分析) 索引標籤,並確保選擇 "Start this recording on startup" (啟動時開始進行記錄) 以及 "CPU Activity" (CPU 活動) > "System Trace" (系統跟蹤) 並點選 "Apply" (套用)。

    △ 編輯配置設定

    現在,每當您想從頭執行此套用並將 CPU 效能分析器附加到套用上時,只需執行 "Profile app startup profiling with low overhead" (低開銷的套用啟動分析) 即可。

    測試精度註意事項

    以下範例場景使用整個套用啟動過程來估算功耗,以達成測試的目的。但是,您可以使用更高級的方法來獲取精度更高的功耗讀數,例如:

  • 僅點選視訊播放器後,才隔離並測量播放視訊的功耗

  • 使用跟蹤標記 API 在時間軸上標記功耗測量的開始和結束時間,然後僅測量該標記時間段內的功耗

  • 場景 A

    在此場景中,我們在執行套用時播放 4K 視訊,並測量前 30 秒的功耗。我們還可以選擇多次執行場景 A,並取平均數。Android Studio 中顯示系統跟蹤標記後,在時間軸選擇面板中選擇 0 - 30 秒的時間範圍,並截圖記錄,用於與場景 B 進行比較。

    △ 場景 A (播放 4K 視訊) 中的功耗

    如您所見,WLAN、CPU 內核和記憶體的平均合計功耗約為 1,352 mW (毫瓦)。 現在,讓我們將其與場景 B 中的功耗進行比較,看看有什麽變化

    場景 B

    在此場景中,我們在執行套用時播放畫質較低的視訊,並測量前 30 秒的功耗。與之前一樣,我們也可以選擇多次執行場景 B,並取功耗平均數。同樣,Android Studio 中顯示系統跟蹤標記後,在時間軸選擇面板中選擇 0 - 30 秒的時間範圍。

    △ 場景 B (播放畫質較低的視訊) 中的功耗

    WLAN、CPU Little、CPU Big、CPU Mid 及記憶體的總功耗約為 741 mW (毫瓦)。

    總結

    在其他條件相同的情況下,場景 B (使用畫質較低的視訊) 的功耗為 741 mW,而場景 A (使用 4K 視訊) 的功耗則為 1,352 mW。

    場景 B (畫質較低視訊) 的功耗比場景 A (4K視訊) 低 45%,而畫質較低的視訊在套用上的畫面觀感與 4K 視訊幾乎沒有差異。

    透過對功耗進行 A/B 測試,您會發現,在套用主頁上以畫質較低的視訊替換 4K 視訊不僅可以將功耗降低 45%,還可以降低所需的網路頻寬,同時還有可能改善裝置的散熱效能。

    如果您套用的業務邏輯仍然要求在套用畫面上呈現 4K 視訊,您也可以探索以下策略:

  • 將 4K 視訊緩存,用於套用的後續執行。

  • 在使用者點選時才載入視訊。

  • 最初僅載入影像,在畫面完全渲染後再載入視訊 (延遲視訊載入)。

  • 上述 A/B 測試場景中提供的功耗總數看起來可能很小,但由此我們展示了一種方法和思路,幫助套用開發者使用 Android Studio 中的功耗效能分析器有效地對其套用功能的功耗進行 A/B 測試。

    未來計劃

    全新的功耗效能分析器將在 Android Studio Hedgehog 及後續版本中提供。您可以參閱官方文件了解更多資訊。歡迎您持續關註 "Android 開發者" 微信公眾號,及時了解更多開發技術和產品更新等資訊動態。

  • Android Studio Hedgehog
    https://developer.android.google.cn/studio/releases/past-releases/as-hedgehog-release-notes#new-power-profiler

  • 官方文件

    https://developer.android.google.cn/studio/profile/power-profiler

  • 推薦閱讀

    如頁面未載入,請重新整理重試

    點選屏末 | 閱讀原文 | 即刻了解更多開發資訊科技動態