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 class performa media 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'
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); } }
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.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. } } }
Class performa memiliki performa yang 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 12 dapat meng-upgrade versi ke Android 13 dan terus melaporkannya untuk mendukung class 12 jika tidak memenuhi persyaratan class 13. Ini berarti class performa menyediakan cara untuk mengelompokkan perangkat tanpa bergantung pada versi Android tertentu.
Class performa 14
Class performa 14 dibuat berdasarkan persyaratan yang diperkenalkan di class performa 13. Persyaratan class performa tertentu dipublikasikan di CDD Android. Selain meningkatkan persyaratan untuk item dari class performa 13, CDD ini akan menentukan persyaratan 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
Generik
- Overlay hardware
- Layar HDR
Class performa 13
Class performa 13 dibuat berdasarkan persyaratan yang diperkenalkan di class performa 12. Persyaratan class performa tertentu dipublikasikan di CDD Android. Selain meningkatkan persyaratan untuk item dari class performa 12, CDD ini akan menentukan persyaratan baru 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 12
Class performa 12 berfokus pada kasus penggunaan media. Persyaratan class performa tertentu dipublikasikan di CDD Android. 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
Generik
- Memori
- Performa operasi baca dan tulis
- Resolusi layar
- Kepadatan layar
Class performa 11
Class performa 11 menyertakan subset persyaratan untuk class performa 12, 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.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Waktu startup aplikasi