Performance-Klasse

Die Leistungsklasse ist ein Standard, der mit Android 12 erstmals eingeführt wurde. Aufführung -Klasse definiert eine Reihe von Gerätefunktionen, die über die Android-Basiswerte hinausgehen Anforderungen.

Jede Android-Version hat ihre eigene Leistungsklasse, die im Android Compatibility Definition Document (Android-Kompatibilitätsdefinitionsdokument) für diese Version definiert sind. (CDD). Die Android-Kompatibilität Die Test-Suite (CTS) prüft, CDD-Anforderungen.

Für jedes Android-Gerät wird die von ihm unterstützte Leistungsklasse deklariert. Entwickler können die Leistungsklasse des Geräts zur Laufzeit sehen und verbesserte Nutzererfahrungen, bei denen die Funktionen des Geräts optimal genutzt werden.

Jetpack Core Core verwenden, um die Leistungsklasse eines Geräts zu ermitteln Leistung Bibliothek. Diese Bibliothek meldet die Medienleistungsklasse des Geräts wie angegeben in der Build-Version Informationen oder basierend auf Daten der Google Play-Dienste.

Fügen Sie zuerst eine Abhängigkeit für die relevanten Module in Ihrer Gradle-Datei hinzu:

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

Cool

// 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);
  }
}

Anschließend kannst du das Attribut mediaPerformanceClass abrufen, um die Eigenschaften deiner App anzupassen je nach Gerätefunktionen:

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.
    }
  }
}

Leistungsklassen sind aufwärtskompatibel. Ein Gerät kann auf einen neueren ohne die Leistungsklasse zu aktualisieren. Beispiel: Ein Gerät die anfänglich die Leistungsklasse 12 unterstützt, kann ein Upgrade auf Android 13 und Wenn sie nicht der Klasse 13 entspricht, wird sie gemeldet. Anforderungen. Mit einer Leistungsklasse lassen sich ohne dass eine bestimmte Android-Version erforderlich ist.

Abbildung 1: Mit Android-Geräten können Android-Versionen berichten, dass sie ihren ursprünglichen Kurs unterstützen. Support.

Performance-Klasse 14

Leistungsklasse 14 baut auf den Anforderungen der Leistungsklasse 13 auf. Die spezifischen Anforderungen an Leistungsklassen sind in der Android CDD Zusätzlich zu den erhöhten Anforderungen an Artikel aus der Leistungsklasse 13 Das CDD legt Anforderungen in den folgenden Bereichen fest:

Medien

  • Unterstützung für Filmkörnung in AV1-Hardwaredecoder
  • AVIF-Baseline-Profil
  • AV1-Encoder-Leistung
  • HDR-Video-Codecs
  • RGBA_1010102-Farbformat
  • Stichprobenerhebung für YUV-Textur
  • Qualität der Videocodierung
  • Mehrkanal-Audiomix

Kamera

  • Nachtmodus-Erweiterung
  • HDR-fähige primäre Kamera
  • Szenenmodus für Gesichtserkennung

Allgemeines

  • Hardware-Overlays
  • HDR-Display

Performance-Klasse 13

Leistungsklasse 13 baut auf den Anforderungen der Leistungsklasse 12 auf. Die spezifischen Anforderungen an Leistungsklassen sind in der Android CDD Zusätzlich zu den erhöhten Anforderungen an Artikel aus der Leistungsklasse 12 Das CDD legt Anforderungen in den folgenden Bereichen fest:

Medien

  • AV1-Hardwaredecoder
  • Sichere Hardware-Decodierer
  • Decoder-Initialisierungslatenz
  • Audiolatenz (Roundtrip)
  • Kabelgebundene Headsets und USB-Audiogeräte
  • MIDI-Geräte
  • Hardwaregestützte, vertrauenswürdige Ausführungsumgebung

Kamera

  • Vorschau für Stabilisierung
  • Aufnahmen in Zeitlupe
  • Minimales Zoomverhältnis für Ultraweitwinkelkameras
  • Gleichzeitige Kamera
  • Logische Multikamera
  • Anwendungsfall Stream

Performance-Klasse 12

Performance-Klasse 12 konzentriert sich auf Anwendungsfälle im Medienbereich. Die spezifische Leistungsklasse finden Sie in diesem Hilfeartikel CDD Das CDD legt Anforderungen in den folgenden Bereichen fest:

Medien

  • Gleichzeitige Video-Codec-Sitzungen
  • Latenz bei der Encoder-Initialisierung
  • Frame-Drops im Decoder
  • Codierungsqualität

Kamera

  • Auflösung und Framerate
  • Start- und Erfassungslatenzen
  • FULL oder besserer Hardwarestufe
  • Zeitstempelquelle ist Echtzeit
  • RAW-Funktion

Allgemeines

  • Arbeitsspeicher
  • Lese- und Schreibleistung
  • Displayauflösung
  • Bildschirmdichte

Performance-Klasse 11

Leistungsklasse 11 umfasst einen Teil der Anforderungen an die Leistungsklasse 12. So können Entwickelnde ein maßgeschneidertes Angebot für frühere, aber dennoch umfassende kompatible Geräte. Die spezifischen Anforderungen an die Leistungsklasse werden veröffentlicht in das Android- CDD

  • Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
  • App-Startzeit