Performans sınıfı, ilk olarak Android 12'de kullanıma sunulan bir standarttır. Performans sınıfı, Android'in temel şartlarından daha fazlasını karşılayan bir dizi cihaz özelliğini tanımlar.
Android'in her sürümünün, ilgili sürümün Android Uyumluluk Tanımlama Belgesi'nde (CDD) tanımlanan kendi performans sınıfı vardır. Android Uyumluluk Test Paketi (CTS), CDD şartlarını doğrular.
Android işletim sistemli her cihaz, desteklediği performans sınıfını belirtir. Geliştiriciler, cihazın performans sınıfını çalışma zamanında bulabilir ve cihazın özelliklerinden tam olarak yararlanan gelişmiş deneyimler sunabilir.
Bir cihazın performans sınıfı düzeyini bulmak için Jetpack Core Performance kitaplığını kullanın. Bu kitaplık, cihazın medya performans sınıfını (MPC) derleme sürümü bilgilerinde belirtildiği şekilde veya Google Play Hizmetleri'nden alınan verilere göre raporlar.
Gradle dosyanıza ilgili modüller için bir bağımlılık ekleyerek başlayın:
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'
Ardından, Application
öğenizin onCreate()
yaşam döngüsü etkinliğinde PlayServicesDevicePerformance
gibi bir DevicePerformance
uygulama örneği oluşturun. Bu işlem, uygulamanızda yalnızca bir kez yapılmalıdır.
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); } }
Ardından, uygulamanızın deneyimini cihazın özelliklerine göre uyarlamak için mediaPerformanceClass
mülkünü alabilirsiniz:
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.VANILLA_ICE_CREAM -> { // MPC level 35 and later. // Provide the most premium experience for the highest performing devices. } devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.UPSIDE_DOWN_CAKE -> { // MPC level 34. // Provide a high quality experience. } else -> { // MPC level 33, 31, 30, 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.VANILLA_ICE_CREAM) { // MPC level 35 and later. // Provide the most premium experience for the highest performing devices. } else if (devicePerformance.getMediaPerformanceClass() == Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // MPC level 34. // Provide a high quality experience. } else { // MPC level 33, 31, 30, or undefined. // Remove extras to keep experience functional. } } }
Performans sınıfı seviyeleri ileriye dönük uyumludur. Cihazlar, performans sınıfını güncellemeden daha yeni bir platform sürümüne yükseltilebilir. Örneğin, başlangıçta performans sınıfı 33'ü destekleyen bir cihaz, Android 14'e yükseltilebilir ve performans sınıfı 34 şartlarını karşılamıyorsa performans sınıfı 33'ü desteklediğini bildirmeye devam edebilir. Bu sayede, belirli bir Android sürümüne bağlı kalmadan cihazları gruplandırabilirsiniz.
Medya Performansı Sınıfı 35
Android 15'te kullanıma sunulan MPC 35, MPC 34'te sunulan şartları temel alır. MPC 35 ile ilgili belirli şartlar Android 15 CDD'de yayınlanmıştır. CDD, MPC 34'teki öğelerle ilgili artan şartlara ek olarak aşağıdaki alanlarda da şartlar belirtir:
Medya
- Atlanan karelerin kodunu çözme
- HDR düzenleme
- Dinamik renk özellikleri
- Dikey en boy oranı
Kamera
- JPEG_R
- Sabitlemeyi önizleme
Grafik
- EGL uzantıları
- Vulkan yapıları
Medya Performansı Sınıfı 34
Android 14'te kullanıma sunulan MPC 34, MPC 33'te sunulan şartları temel alır. MPC 34'e özgü şartlar Android 14 CDD'de yayınlanmıştır. CDD, MPC 33'teki öğeler için artan şartlara ek olarak aşağıdaki alanlarda da şartlar belirtir:
Medya
- AV1 donanım kod çözücülerinde film tanecik etkisi desteği
- AVIF taban profili
- AV1 kodlayıcı performansı
- HDR video codec'leri
- RGBA_1010102 renk biçimi
- YUV doku örnekleme
- Video kodlama kalitesi
- Çok kanallı ses karıştırma
Kamera
- Gece modu uzantısı
- HDR özellikli birincil kamera
- Yüz algılama sahne modu
Genel
- Donanım yer paylaşımları
- HDR ekran
Medya Performansı Sınıfı 33
MPC 33, Android 13'te kullanıma sunulmuştur ve MPC 31'de kullanıma sunulan şartları temel alır. MPC 33'e özgü şartlar Android 13 CDD'de yayınlanmıştır. CDD, MPC 31'deki öğeler için artan şartlara ek olarak aşağıdaki alanlarda da şartlar belirtir:
Medya
- AV1 donanım kod çözücü
- Güvenli donanım kod çözücüler
- Kod çözücü başlatma gecikmesi
- Giden ve gelen ses gecikmesi
- Kablolu mikrofonlu kulaklıklar ve USB ses cihazları
- MIDI cihazları
- Donanım destekli güvenilir yürütme ortamı
Kamera
- Sabitlemeyi önizleme
- Ağır çekim kayıt
- Ultra geniş kameralar için minimum yakınlaştırma oranı
- Eşzamanlı kamera
- Mantıksal çoklu kamera
- Akış kullanım alanı
Medya Performansı Sınıfı 31
MPC 31, Android 12'de kullanıma sunulmuştur. MPC 31 ile ilgili şartlar Android 12 CDD'de yayınlanmıştır. CDD, aşağıdaki alanlarda koşulları belirtir:
Medya
- Eşzamanlı video codec'i oturumları
- Kodlayıcı başlatma gecikmesi
- Kod çözücü kare atlamaları
- Kodlama kalitesi
Kamera
- Çözünürlük ve kare hızı
- Başlatma ve yakalama gecikmeleri
FULL
veya daha iyi donanım düzeyi- Zaman damgası kaynağı gerçek zamanlı
- RAW işlevi
Genel
- Bellek
- Okuma ve yazma performansı
- Ekran çözünürlüğü
- Ekran yoğunluğu
Medya Performansı Sınıfı 30
MPC 30, MPC 31'e yönelik gereksinimlerin bir alt kümesini içerir. Bu sayede geliştiriciler, eski ancak yine de yüksek kapasiteli cihazlarda özelleştirilmiş bir deneyim sunabilir. Belirli performans sınıfı koşulları Android 11 CDD'de yayınlanmıştır.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Uygulama başlatma süresi