La classe di prestazione è uno standard introdotto per la prima volta in Android 12. Una classe di prestazioni definisce un insieme di funzionalità del dispositivo che vanno oltre i requisiti di base di Android.
A ogni versione di Android corrisponde la classe di prestazioni, definita nel Android Compatibility Definition Document (CDD). La Android Compatibility Test Suite (CTS) verifica i requisiti del CDV.
Ogni dispositivo Android dichiara la classe di prestazioni che supporta. Gli sviluppatori possono conoscere la classe di prestazioni del dispositivo in fase di runtime e fornire esperienze aggiornate che sfruttano al meglio le funzionalità del dispositivo.
Per trovare il livello della classe prestazioni di un dispositivo, utilizza la libreria Prestazioni principali di Jetpack. Questa libreria segnala la classe di prestazioni multimediali del dispositivo, come dichiarata nelle informazioni sulla versione della build o in base ai dati di Google Play Services.
Inizia aggiungendo una dipendenza per i moduli pertinenti nel file Gradle:
Kotlin
// Implementation of Jetpack Core library. implementation("androidx.core:core-ktx:1.10.1") // Enable APIs to query for device-reported performance class. implementation("androidx.core:core-performance:1.0.0-beta01") // Enable APIs to query Google Play Services for performance class. implementation("androidx.core:core-performance-play-services:1.0.0-beta01")
Trendy
// Implementation of Jetpack Core library. implementation 'androidx.core:core-ktx:1.10.1' // Enable APIs to query for device-reported performance class. implementation 'androidx.core:core-performance:1.0.0-beta01' // Enable APIs to query Google Play Services for performance class. implementation 'androidx.core:core-performance-play-services:1.0.0-beta01'
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); } }
Puoi quindi recuperare la proprietà mediaPerformanceClass
per personalizzare l'esperienza della tua app in base alle funzionalità del dispositivo:
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. } } }
Le classi di rendimento sono compatibili con le versioni future. È possibile eseguire l'upgrade di un dispositivo a una versione della piattaforma più recente senza aggiornare la classe di prestazioni. Ad esempio, un dispositivo che inizialmente supporta la classe di prestazioni 12 può eseguire l'upgrade ad Android 13 e continuare a segnalare che supporta la classe 12 se non soddisfa i requisiti della classe 13. Ciò significa che una classe di prestazioni fornisce un modo per raggruppare i dispositivi senza fare affidamento su una particolare versione di Android.
Classe di rendimento 13
La classe di prestazioni 13 si basa sui requisiti introdotti nella classe di prestazioni 12. I requisiti specifici delle classi di rendimento sono pubblicati nel CDD di Android. Oltre a requisiti più elevati per gli elementi della classe di prestazioni 12, il CDV specifica i requisiti nelle seguenti aree:
Contenuti multimediali
- Decodificatore hardware AV1
- Decodificatori hardware sicuri
- Latenza di inizializzazione decoder
- Latenza audio di round trip
- Cuffie con cavo e dispositivi audio USB
- Dispositivi MIDI
- Ambiente di esecuzione affidabile basato su hardware
Fotocamera
- Stabilizzazione anteprima
- Registrazione in slow motion
- Rapporto di zoom minimo per le fotocamere ultrawide
- Videocamera simultanea
- Multicamera logica
- Caso d'uso per lo streaming
Classe di rendimento 12
La classe di rendimento 12 è incentrata sui casi d'uso dei media. I requisiti della classe di prestazioni specifica sono pubblicati nel CDD di Android. Il CDD specifica i requisiti nelle seguenti aree:
Contenuti multimediali
- Sessioni simultanee di codec video
- Latenza di inizializzazione del codificatore
- Cadute di frame del decoder
- Qualità di codifica
Fotocamera
- Risoluzione e frequenza fotogrammi
- Latenze di avvio e acquisizione
FULL
o livello hardware superiore- L'origine del timestamp è in tempo reale
- Funzionalità RAW
Generico
- Memoria
- Prestazioni di lettura e scrittura
- Risoluzione dello schermo
- Densità schermo
Classe di rendimento 11
La classe di prestazioni 11 include un sottoinsieme dei requisiti per la classe di prestazioni 12, consentendo agli sviluppatori di offrire un'esperienza personalizzata su dispositivi precedenti, ma comunque ad alte prestazioni. I requisiti specifici delle classi di prestazioni sono pubblicati nel CDD di Android.
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Tempo di avvio dell'app