「效能類別」是 Android 12 首次引進的標準,可定義一系列超出 Android 基準要求的裝置功能。
每個 Android 版本都有自己對應的效能類別,定義位於該版本的 Android 相容性定義說明文件 (CDD) 內。Android Compatibility Test Suite (CTS) 可驗證 CDD 要求。
由於每部 Android 裝置都會聲明自身支援的效能類別,開發人員可以在執行階段查看裝置的效能類別,並提供能充分利用裝置功能的進階體驗。
如要查看裝置的效能類別等級,請使用 Jetpack Core Performance 程式庫。這個程式庫會根據版本資訊中聲明的類別或來自 Google Play 服務的資料,回報裝置的媒體效能類別。
請先在 Gradle 檔案中新增相關模組的依附元件:
Kotlin
// Implementation of Jetpack Core library. implementation("androidx.core:core-ktx:1.12.0") // Enable APIs to query for device-reported performance class. implementation("androidx.core:core-performance:1.0.0") // Enable APIs to query Google Play Services for performance class. implementation("androidx.core:core-performance-play-services:1.0.0")
Groovy
// Implementation of Jetpack Core library. implementation 'androidx.core:core-ktx:1.12.0' // Enable APIs to query for device-reported performance class. implementation 'androidx.core:core-performance:1.0.0' // Enable APIs to query Google Play Services for performance class. implementation 'androidx.core:core-performance-play-services:1.0.0'
Then, create an instance of a
DevicePerformance
implementation, such as
PlayServicesDevicePerformance
,
in the onCreate()
lifecycle event of your Application
. This should only be
done once in your app.
Kotlin
import androidx.core.performance.play.services.PlayServicesDevicePerformance class MyApplication : Application() { lateinit var devicePerformance: DevicePerformance override fun onCreate() { // Use a class derived from the DevicePerformance interface devicePerformance = PlayServicesDevicePerformance(applicationContext) } }
Java
import androidx.core.performance.play.services.PlayServicesDevicePerformance; class MyApplication extends Application { DevicePerformance devicePerformance; @Override public void onCreate() { // Use a class derived from the DevicePerformance interface devicePerformance = new PlayServicesDevicePerformance(applicationContext); } }
然後,您可以擷取 mediaPerformanceClass
屬性,根據裝置功能量身打造應用程式體驗:
Kotlin
class MyActivity : Activity() { private lateinit var devicePerformance: DevicePerformance override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Note: Good app architecture is to use a dependency framework. See // https://developer.android.com/training/dependency-injection for more // information. devicePerformance = (application as MyApplication).devicePerformance } override fun onResume() { super.onResume() when { devicePerformance.mediaPerformanceClass >= Build.VERSION_CODES.TIRAMISU -> { // Performance class level 13 and later. // Provide the most premium experience for the highest performing devices. } devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.S -> { // Performance class level 12. // Provide a high quality experience. } else -> { // Performance class level 11 or undefined. // Remove extras to keep experience functional. } } } }
Java
class MyActivity extends Activity { private DevicePerformance devicePerformance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Note: Good app architecture is to use a dependency framework. See // https://developer.android.com/training/dependency-injection for more // information. devicePerformance = ((MyApplication) getApplication()).devicePerformance; } @Override public void onResume() { super.onResume(); if (devicePerformance.getMediaPerformanceClass() >= Build.VERSION_CODES.TIRAMISU) { // Performance class level 13 and later. // Provide the most premium experience for the highest performing devices. } else if (devicePerformance.getMediaPerformanceClass() == Build.VERSION_CODES.S) { // Performance class level 12. // Provide a high quality experience. } else { // Performance class level 11 or undefined. // Remove extras to keep experience functional. } } }
效能類別具有前瞻相容性,即使不更新效能類別,裝置還是可以升級至較新的平台版本。舉例來說,某部裝置最初支援的效能類別是 12,雖然可以升級為 Android 13,但如未符合類別 13 的要求,則可繼續回報自身的支援類別為 12。因此,您可以利用效能類別為裝置分類,而不用依靠特定的 Android 版本。
效能類別 14
效能類別 14 是以效能類別 13 中導入的要求為基礎。如需瞭解具體的效能類別要求,請參閱 Android CDD。除了對效能類別 13 的項目增加要求之外,CDD 還針對下列項目指定若干要求:
媒體
- AV1 硬體解碼器中的膠片顆粒效果支援
- AVIF 基準設定檔
- AV1 編碼器效能
- HDR 視訊轉碼器
- RGBA_1010102 色彩格式
- YUV 紋理取樣
- 影片編碼品質
- 多聲道混音
鏡頭
- 夜間模式擴充功能
- 支援 HDR 的主鏡頭
- 臉部偵測場景模式
一般
- 硬體重疊圖層
- HDR 螢幕
效能類別 13
效能類別 13 是以效能類別 12 中導入的要求為基礎。如需瞭解具體的效能類別要求,請參閱 Android CDD。除了對效能類別 12 的項目要求增加之外,CDD 還針對下列項目指定規定:
媒體
- AV1 硬體解碼器
- 安全的硬體解碼器
- 解碼器初始化延遲時間
- 往返音訊延遲時間
- 有線耳機和 USB 音訊裝置
- MIDI 裝置
- 硬體支援的受信任執行環境
鏡頭
- 預覽防震功能
- 慢動作錄影功能
- 超廣角鏡頭的最小縮放比例
- 並行鏡頭
- 邏輯多鏡頭
- 串流用途
效能類別 12
效能類別 12 著重於媒體用途。如需瞭解具體的效能類別要求,請參閱 Android CDD。CDD 會明定以下各領域的要求:
媒體
- 並行影片轉碼器工作階段
- 編碼器初始化延遲時間
- 解碼器影格遺失
- 編碼品質
鏡頭
- 解析度和畫面更新率
- 啟動及擷取延遲時間
FULL
或更高硬體級別- 時間戳記來源為即時資料
- RAW 功能
一般
- 記憶體
- 讀取及寫入效能
- 螢幕解析度
- 螢幕密度
效能類別 11
效能類別 11 內含效能類別 12 的部分要求,可讓開發人員在仍可正常使用的舊版裝置上提供專屬體驗。如需瞭解具體的效能類別要求,請參閱 Android CDD。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 應用程式啟動時間