Performans sınıfı, ilk olarak Android 12'de kullanıma sunulan bir standarttır. Performans sınıfı, Android'in temel gereksinimlerinin ötesine geçen bir dizi cihaz özelliğini tanımlar.
Android'in her sürümüne karşılık gelen kendi performans sınıfı bulunur. Bu sınıf, ilgili sürümün Android Uyumluluk Tanımı Belgesi (CDD) bölümünde tanımlanmıştır. Android Uyumluluğu Test Paketi (CTS) CidD gereksinimlerini doğrular.
Android destekli 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 daha yüksek deneyimler sunabilir.
Bir cihazın performans sınıfı düzeyini bulmak için Jetpack Temel Performans kitaplığını kullanın. Bu kitaplık, cihazın medya performansı sınıfını derleme sürümü bilgilerinde belirtilen veya Google Play hizmetlerindeki verilere dayalı olarak bildirir.
Gradle dosyanızdaki 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-beta02") // Enable APIs to query Google Play Services for performance class. implementation("androidx.core:core-performance-play-services:1.0.0-beta02")
Modern
// 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-beta02' // Enable APIs to query Google Play Services for performance class. implementation 'androidx.core:core-performance-play-services:1.0.0-beta02'
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); } }
Daha sonra, uygulama deneyiminizi cihazın özelliklerine göre özelleştirmek için mediaPerformanceClass
özelliğini 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.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. } } }
Performans sınıfları ileriye dönük uyumludur. Cihazlar, performans sınıfını güncellemeden daha yeni bir platform sürümüne geçebilir. Örneğin, başlangıçta performans sınıfı 12'yi destekleyen bir cihaz Android 13'e yükseltilebilir ve 13. sınıf gereksinimlerini karşılamıyorsa cihazın 12. sınıf gereksinimlerini karşılamadığını bildirmeye devam edebilir. Bu, performans sınıfının belirli bir Android sürümüne bağlı kalmadan cihazları gruplandırmak için bir yol sağladığı anlamına gelir.
Performans sınıfı 14
14. performans sınıfı, 13. performans sınıfında belirtilen koşulları temel alır. Belirli performans sınıfı gereksinimleri Android CDD'de yayınlanır. CDD, performans sınıfı 13'teki öğeler için artan gereksinimlere ek olarak aşağıdaki alanlarda gereklilikler belirtir:
Medya
- AV1 donanım kod çözücülerinde film greni efekti desteği
- AVIF Temel Profili
- AV1 kodlayıcı performansı
- HDR video codec'leri
- RGBA_1010102 renk biçimi
- YUV doku örneklemesi
- Video kodlama kalitesi
- Çok kanallı ses miksleme
Kamera
- Gece modu uzatması
- HDR özellikli birincil kamera
- Yüz algılama sahne modu
Genel
- Donanım yer paylaşımları
- HDR ekran
Performans sınıfı 13
13. performans sınıfı, 12. performans sınıfında belirtilen koşulları temel alır. Belirli performans sınıfı gereksinimleri Android CDD'de yayınlanır. CDD, performans sınıfı 12'deki öğeler için artan gereksinimlere ek olarak aşağıdaki alanlarda gereklilikler belirtir:
Medya
- AV1 donanım kod çözücü
- Güvenli donanım kod çözücüleri
- Kod çözücü başlatma gecikmesi
- Gidiş dönüş ses gecikmesi
- Kablolu mikrofonlu kulaklıklar ve USB ses cihazları
- MIDI cihazlar
- Donanım destekli güvenilir yürütme ortamı
Kamera
- Sabitlemeyi önizle
- Ağır çekim kaydı
- Ultra geniş kameralar için minimum yakınlaştırma oranı
- Eşzamanlı kamera
- Mantıksal çok kamera
- Akış kullanım alanı
Performans sınıfı 12
12. performans sınıfı, medya kullanım alanlarına odaklanır. Belirli performans sınıfı gereksinimleri Android CDD'de yayınlanır. CDD, aşağıdaki alanlara yönelik gereksinimleri belirtir:
Medya
- Eşzamanlı video codec oturumları
- Kodlayıcı başlatma gecikmesi
- Kod çözücü kare düşüşleri
- Kodlama kalitesi
Kamera
- Çözünürlük ve kare hızı
- Başlatma ve gecikmeleri kaydetme
FULL
veya daha iyi bir donanım düzeyine- Zaman damgası kaynağı gerçek zamanlı
- RAW özelliği
Genel
- Bellek
- Okuma ve yazma performansı
- Ekran çözünürlüğü
- Ekran yoğunluğu
Performans sınıfı 11
11. performans sınıfı, 12 performans sınıfı gereksinimlerinin bir alt kümesini içerir ve geliştiricilerin daha eski ancak yüksek özellikli cihazlarda özel bir deneyim sunmasını sağlar. Belirli performans sınıfı gereksinimleri Android CDD'de yayınlanır.
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken gösterilir
- Uygulama başlatma süresi