Android对性能要求,Android性能管理
管理Android設備的功耗和性能有助于確保應用程序在各種硬件上始終如一地順暢運行。在Android 7.0及更高版本中,OEM可以實現對持續性能提示的支持,使應用程序能夠保持一致的設備性能,并指定專屬核以提高CPU密集型前臺應用程序的性能。
持續性能
對于長時間運行的應用程序(游戲,相機,渲染腳本,音頻處理),??性能會隨著設備溫度限制和片上系統(SoC)引擎限制而顯著變化。應用程序開發人員創建高性能,長期運行的應用程序是受限的,因為當設備開始升溫時,底層平臺的功能是波動的。
為了解決這些限制,Android 7.0引入了對持續性能的支持,使OEM能夠為長期運行的應用程序提供設備性能功能的提示。應用程序開發人員可以使用這些提示來調整應用程序,以便在很長一段時間內獲得可預測的,一致的設備性能水平。
架構
Android應用程序可以請求平臺進入持續性能模式,使Android設備可以在較長時間內保持一致的性能水平。
power_sustained_perf.png
實現
為了在Android 7.0及更高版本上支持持續性能,OEM必須:
對特定設備的電源HAL進行更改,以鎖定最大CPU / GPU頻率或執行其他優化以防止熱量限制。
在電源HAL中實現POWER_HINT_SUSTAINED_PERFORMANCE新提示。
聲明支持通過isSustainedPerformanceModeSupported()API 返回TRUE 。
實現Window.setSustainedPerformanceMode。
在Nexus參考實現中,功率提示將CPU和GPU的最大頻率限制在最高可持續水平。記住,降低CPU / GPU頻率中的MAX條會降低幀速率,但由于其可持續性,在此模式下首選此速率較低。例如,使用正常最大時鐘的設備能夠在60 FPS下渲染幾分鐘,但在設備加熱后,它可能會在30分鐘結束時節流至30 FPS。使用持續模式時,設備可以在整個30分鐘內以45 FPS持續渲染。目標是在不使用模式時使用與幀速率一樣高(或更高)的模式時的幀速率,并且隨著時間的推移保持一致,以便開發人員不必追逐移動目標。
我們強烈建議實施持續模式,使設備實現最高可能的持續性能 - 而不僅僅是通過測試所需的最小值(例如,選擇盡可能高的MAX頻率上限,不會導致設備隨時間受熱量限制)。
注意:實現持續模式不需要限制MAX時鐘速率。
驗證
OEM可以使用CTS測試(Android 7.0及更高版本)來驗證其持續性能API的實現。測試運行大約30分鐘的工作負載,并在啟用和不啟用持續模式的情況下進行性能基準測試:
啟用持續模式后,幀速率必須保持相對恒定(測試計量幀速率隨時間變化的百分比,并要求<5%的變化)。
啟用持續模式后,幀速率不得低于禁用持續模式30分鐘后的幀速率。
此外,您可以使用多個CPU和GPU密集型工作負載手動測試您的實現,以確保設備在使用30分鐘后不會受熱量限制。在內部測試中,我們使用了工作負載樣例,包括游戲和基準測試應用程序(例如 gfxbench)。
專屬核
對于CPU密集型,時間敏感的工作負載,是否會被另一個線程搶占與是否設置幀結束時間有關。對于具有嚴格延遲和幀速率要求的應用程序(例如音頻或虛擬現實應用程序),擁有專屬CPU核可以保證可接受的性能水平。
運行Android 7.0或更高版本的設備現在可以為頂級前臺應用程序明確保留一個核,從而提高所有前臺應用程序的性能,并為具有高強度工作負載的應用程序提供更多控制,以便跨CPU核分配工作。
要在設備上支持專屬核:
啟用cpusets并配置cpuset僅包含最前臺應用程序的應用程序。
確保此cpusets為線程保留一個核(即專屬核)。
實現getExclusiveCores API以返回專屬核的核編號。
要確定在哪些核上安排了哪些進程,在運行任何工作負載時使用systrace 驗證除了最前臺應用程序之外,無任何其他應用程序的用戶空間線程在專屬核上調度。
要查看Nexus 6P的參考實現,請參閱 android//device/huawei/angler/power/power.c。
總結
以上是生活随笔為你收集整理的Android对性能要求,Android性能管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: string转short java_[J
- 下一篇: mac android 录屏软件下载,苹