Performans sınıfı

Performans sınıfı, ilk olarak Android 12'de kullanıma sunulan bir standarttır. A performans sınıfı, Android'in temel çizgisinin ötesine geçen bir dizi cihaz özelliğini tanımlar. gereksinimlerini karşılayın.

Android'in her sürümünün kendine ait bir performans sınıfı vardır. söz konusu sürümün Android Uyumluluk Tanımlama Belgesi (CDD) başlıklı makaleyi inceleyin. Android Uyumluluğu Test Paketi (CTS), CDD koşulları.

Android destekli her cihaz, desteklediği performans sınıfını belirtir. Geliştiriciler çalışma zamanında cihazın performans sınıfını bulabilir ve cihaz özelliklerinden tam olarak yararlanan yeni sürüme geçirilmiş deneyim sağlar.

Bir cihazın performans sınıfı seviyesini bulmak için Jetpack Core Performans kitaplığını açar. Bu kitaplık, cihazın medya performansı sınıfını bildirilen şekilde raporlar derleme sürümünde bilgi veya Google Play Hizmetleri'ndeki verilere dayanır.

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")

Eski

// 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 mediaPerformanceClass özelliğini alarak uygulamanızın özelliklerini özelleştirebilirsiniz. deneyimi:

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üktür. Cihaz, daha yeni bir platform sürümünü kullanın. Örneğin, bir cihazda Başlangıçta 12. performans sınıfını destekleyenler Android 13'e ve 13. sınıfa uymuyorsa 12. sınıfa destek olduğunu bildirmeye devam et gereksinimlerini karşılayın. Bu durum, performans sınıfının bir projeyi bir Android cihaz paketi kullanmanız gerekmez.

Şekil 1. Cihazlar, Android sürümlerini ve Desteklediklerini bildirmeye devam eden destek.

14. performans sınıfı

14. performans sınıfı, 13. performans sınıfının şartlarını temel alır. Özel performans sınıfı şartları Android CDD. 13. performans sınıfındaki öğelere yönelik artan şartlara ek olarak, CDD, aşağıdaki alanlarda geçerli olan gereklilikleri belirtir:

Medya

  • AV1 donanım kod çözücülerde 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 uzantısı
  • HDR özellikli birincil kamera
  • Yüz algılama sahne modu

Generic

  • Donanım yer paylaşımları
  • HDR ekran

13. performans sınıfı

13. performans sınıfı, 12. performans sınıfının şartlarını temel alır. Özel performans sınıfı şartları Android CDD. 12. performans sınıfındaki öğelere yönelik artan şartlara ek olarak, CDD, aşağıdaki alanlarda geçerli olan gereklilikleri 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 kulaklıklar ve USB ses cihazları
  • MIDI cihazları
  • Donanım destekli güvenilir yürütme ortamı

Kamera

  • Önizleme sabitleme
  • 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ı

Performans sınıfı 12

12. performans sınıfı, medya kullanım alanlarına odaklanmıştır. İlgili performans sınıfı Android CDD. 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 yakalama gecikmeleri
  • FULL ya da daha iyi bir donanım
  • Zaman damgası kaynağı gerçek zamanlı
  • RAW özelliği

Generic

  • Bellek
  • Okuma ve yazma performansı
  • Ekran çözünürlüğü
  • Ekran yoğunluğu

Performans sınıfı 11

11. performans sınıfı, performans sınıfı şartlarının bir alt kümesini içerir 12: Geliştiricilerin daha erken fakat yine de büyük ölçüde özelleştirilmiş bir deneyim sağlamasını sağlar. özelliği olan cihazlardır. Performans sınıfıyla ilgili belirli koşullar şurada yayınlanmıştır: Android CDD.

ziyaret edin.