סיווג הביצועים הוא תקן שהוצג לראשונה ב-Android 12. סיווג הביצועים מגדיר קבוצה של יכולות המכשיר שמעבר לדרישות הבסיסיות של Android.
לכל גרסה של Android יש סיווג ביצועים משלה, שמוגדר במסמך ההגדרה של תאימות ל-Android (CDD) של אותה גרסה. Android Compatibility Test Suite (CTS) מאמת את הדרישות של CDD.
כל מכשיר עם Android מצהיר על סיווג הביצועים שהוא תומך בו. המפתחים יכולים למצוא את סיווג הביצועים של המכשיר בזמן הריצה, ולספק חוויות משופרות שמנצלות את מלוא היכולות של המכשיר.
כדי למצוא את רמת סיווג הביצועים של מכשיר, משתמשים בספרייה Core Performance של Jetpack. הספרייה הזו מדווחת על רמת הביצועים של המדיה במכשיר (MPC) כפי שהוצהרה בפרטי גרסת ה-build או על סמך נתונים מ-Google Play Services.
מתחילים בהוספת יחסי תלות למודולים הרלוונטיים בקובץ ה-gradle:
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'
לאחר מכן יוצרים מכונה של הטמעה של DevicePerformance
, למשל PlayServicesDevicePerformance
, באירוע מחזור החיים onCreate()
של ה-Application
. צריך לעשות זאת רק פעם אחת באפליקציה.
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); } }
לאחר מכן תוכלו לאחזר את המאפיין mediaPerformanceClass
כדי להתאים אישית את חוויית השימוש באפליקציה בהתאם ליכולות של המכשיר:
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. } } }
רמות של סיווג ביצועים תואמות לעתיד. מכשיר יכול לשדרג לגרסה חדשה יותר של הפלטפורמה בלי לעדכן את סיווג הביצועים שלו. לדוגמה, מכשיר שתומך בתחילה בסיווג הביצועים 33 יכול לשדרג ל-Android 14 ולהמשיך לדווח שהוא תומך בסיווג הביצועים 33 אם הוא לא עומד בדרישות של סיווג הביצועים 34. כך אפשר לקבץ מכשירים יחד בלי להסתמך על גרסת Android מסוימת.
סיווג ביצועי המדיה 35
MPC 35 הוצג ב-Android 15 והוא מבוסס על הדרישות שהוצגו ב-MPC 34. הדרישות הספציפיות של MPC 35 מפורסמות בCDD של Android 15. בנוסף לדרישות המחמירות יותר לגבי פריטים מ-MPC 34, ב-CDD מפורטות דרישות בתחומים הבאים:
מדיה
- ירידה במסגרות הפענוח
- עריכת HDR
- היבטים של צבע דינמי
- יחס גובה-רוחב לאורך
מצלמה
- JPEG_R
- תצוגה מקדימה של הייצוב
גרפיקה
- תוספי EGL
- מבנים של Vulkan
Media Performance Class 34
MPC 34 הוצג ב-Android 14 והוא מבוסס על הדרישות שהוצגו ב-MPC 33. הדרישות הספציפיות של MPC 34 מפורסמות בCDD של Android 14. בנוסף לדרישות המחמירות יותר לגבי פריטים מ-MPC 33, ב-CDD מפורטות דרישות בתחומים הבאים:
מדיה
- תמיכה באפקט גרעיני של סרטים במפענחי חומרה של AV1
- פרופיל Baseline של AVIF
- ביצועי המקודד של AV1
- קודיקים של וידאו HDR
- פורמט הצבע RGBA_1010102
- דגימת מרקם YUV
- איכות הקידוד של הסרטון
- מיקס אודיו בכמה ערוצים
מצלמה
- תוסף מצב לילה
- מצלמה ראשית עם תמיכה ב-HDR
- מצב נוף עם זיהוי פנים
כללי
- שכבות-על של חומרה
- מסך HDR
Media Performance Class 33
MPC 33 הוצג ב-Android 13 והוא מבוסס על הדרישות שהוצגו ב-MPC 31. הדרישות הספציפיות של MPC 33 מפורסמות בCDD של Android 13. בנוסף לדרישות המחמירות יותר לגבי פריטים מ-MPC 31, CDD מציין דרישות בתחומים הבאים:
מדיה
- מפענח חומרה של AV1
- מקודדים מאובטחים של חומרה
- זמן האחזור של אתחול המפענח
- זמן אחזור אודיו הלוך ושוב
- דיבוריות חוטיות ומכשירי אודיו מסוג USB
- מכשירי MIDI
- סביבת מחשוב אמינה מגובה בחומרה
מצלמה
- תצוגה מקדימה של הייצוב
- צילום בהילוך איטי
- יחס זום מינימלי למצלמות Ultrawide
- מצלמה בו-זמנית
- מצלמה לוגית עם כמה מצלמות
- תרחיש לדוגמה של שידור
סיווג הביצועים של המדיה 31
MPC 31 הוצג ב-Android 12. הדרישות הספציפיות של MPC 31 מפורסמות בCDD של Android 12. ב-CDD מפורטות דרישות בתחומים הבאים:
מדיה
- סשנים של קודק וידאו בו-זמנית
- זמן האחזור של אתחול המקודד
- פריימים חסרים במפענח
- איכות הקידוד
מצלמה
- רזולוציה וקצב פריימים
- זמני האחזור של הפעלה וצילום
FULL
או ברמת חומרה טובה יותר- מקור חותמת הזמן הוא בזמן אמת
- יכולת RAW
כללי
- זיכרון
- ביצועי קריאה וכתיבה
- רזולוציית המסך
- דחיסות מסך
Media Performance Class 30
MPC 30 כולל קבוצת משנה של הדרישות ל-MPC 31, ומאפשר למפתחים לספק חוויה מותאמת אישית במכשירים ישנים יותר, שעדיין בעלי יכולות גבוהות. הדרישות הספציפיות של סיווג הביצועים מפורסמות בCDD של Android 11.
מומלץ עבורך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- זמן ההפעלה של האפליקציה