Class performa adalah standar pertama yang diperkenalkan di Android 12. Class performa menentukan serangkaian kemampuan perangkat yang tidak sekadar memenuhi persyaratan dasar Android.
Setiap versi Android memiliki class performanya masing-masing yang ditentukan dalam Compatibility Definition Document (CDD) Android versi tersebut. Compatibility Test Suite (CTS) Android memverifikasi persyaratan CDD.
Setiap perangkat yang didukung Android mendeklarasikan class performa yang didukungnya. Developer dapat menemukan class performa perangkat saat runtime dan memberikan upgrade pengalaman guna memanfaatkan kemampuan perangkat secara penuh.
Untuk menemukan level class performa perangkat, gunakan library Jetpack Core Performance. Library ini melaporkan level class performa media (MPC) perangkat seperti yang dideklarasikan dalam informasi versi build atau berdasarkan data dari layanan Google Play.
Mulailah dengan menambahkan dependensi untuk modul yang relevan dalam file gradle Anda:
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'
Kemudian, buat instance implementasi DevicePerformance
, seperti PlayServicesDevicePerformance
,
dalam peristiwa siklus proses onCreate()
dari Application
. Hal ini hanya boleh dilakukan
sekali di aplikasi Anda.
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); } }
Selanjutnya, Anda dapat mengambil properti mediaPerformanceClass
untuk menyesuaikan pengalaman aplikasi berdasarkan kemampuan perangkat:
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. } } }
Tingkat class performa kompatibel dengan versi yang lebih baru. Perangkat dapat melakukan upgrade ke versi platform yang lebih baru tanpa mengupdate class performanya. Misalnya, perangkat yang awalnya mendukung class performa 33 dapat meng-upgrade versi ke Android 14 dan terus melaporkannya untuk mendukung class performa 33 jika tidak memenuhi persyaratan class performa 34. Hal ini memungkinkan pengelompokan perangkat tanpa bergantung pada versi Android tertentu.
Class Performa Media 35
MPC 35 diperkenalkan di Android 15 dan dibuat berdasarkan persyaratan yang diperkenalkan di MPC 34. Persyaratan MPC 35 tertentu dipublikasikan di CDD Android 15. Selain meningkatkan persyaratan untuk item dari MPC 34, CDD ini akan menentukan persyaratan baru dalam area berikut:
Media
- Penurunan frame decoding
- Pengeditan HDR
- Aspek warna dinamis
- Rasio aspek potret
Kamera
- JPEG_R
- Stabilisasi pratinjau
Grafik
- Ekstensi EGL
- Struktur Vulkan
Class Performa Media 34
MPC 34 diperkenalkan di Android 14 dan dibuat berdasarkan persyaratan yang diperkenalkan di MPC 33. Persyaratan MPC 34 tertentu dipublikasikan di CDD Android 14. Selain meningkatkan persyaratan untuk item dari MPC 33, CDD ini akan menentukan persyaratan baru dalam area berikut:
Media
- Dukungan efek film grain dalam decoder hardware AV1
- Profil Dasar Pengukuran AVIF
- Performa encoder AV1
- Codec video HDR
- Format warna RGBA_1010102
- Pengambilan sampel tekstur YUV
- Kualitas encoding video
- Mixing audio multisaluran
Kamera
- Ekstensi mode malam
- Kamera utama berkemampuan HDR
- Mode adegan deteksi wajah
Umum
- Overlay hardware
- Layar HDR
Class Performa Media 33
MPC 33 diperkenalkan di Android 13 dan dibuat berdasarkan persyaratan yang diperkenalkan di MPC 31. Persyaratan MPC 33 tertentu dipublikasikan di CDD Android 13. Selain meningkatkan persyaratan untuk item dari MPC 31, CDD ini akan menentukan persyaratan dalam area berikut:
Media
- Decoder hardware AV1
- Decoder hardware aman
- Latensi inisialisasi decoder
- Latensi audio bolak-balik
- Headset berkabel dan perangkat audio USB
- Perangkat MIDI
- Trusted execution environment yang didukung hardware
Kamera
- Stabilisasi pratinjau
- Perekaman gerakan lambat
- Rasio zoom minimum untuk kamera ultrawide
- Kamera serentak
- Multi-kamera logis
- Kasus penggunaan streaming
Class Performa Media 31
MPC 31 diperkenalkan di Android 12. Persyaratan MPC 31 tertentu dipublikasikan di CDD Android 12. CDD menentukan persyaratan di area berikut:
Media
- Sesi codec video serentak
- Latensi inisialisasi encoder
- Penurunan frame decoder
- Kualitas encoding
Kamera
- Resolusi dan kecepatan frame
- Latensi startup dan pengambilan gambar
FULL
atau level hardware yang lebih baik- Sumber stempel waktu bersifat realtime
- Kemampuan RAW
Umum
- Memori
- Performa operasi baca dan tulis
- Resolusi layar
- Kepadatan layar
Class Performa Media 30
MPC 30 menyertakan subset persyaratan untuk MPC 31, sehingga developer dapat memberikan pengalaman yang disesuaikan di perangkat yang lebih awal tetapi masih memiliki kemampuan tinggi. Persyaratan class performa tertentu dipublikasikan di CDD Android 11.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Waktu startup aplikasi