סיווג ביצועים הוא תקן סטנדרטי שהושק לראשונה ב-Android 12. ביצוע מגדיר קבוצה של יכולות מכשיר שחורגות מהגדרות הבסיס של Android בדרישות שלנו.
לכל גרסה של Android יש סיווג ביצועים תואם משלה, כלומר שהוגדרה במסמך הגדרת התאימות ל-Android של הגרסה הרלוונטית (CDD). הכלי תאימות ל-Android Test Suite (CTS) מאמת את דרישות לגבי CDD.
כל מכשיר Android כולל הצהרה על סיווג הביצועים שבו הוא תומך. המפתחים יכולים למצוא את רמת הביצועים של המכשיר בזמן הריצה ולספק שמפיקות חוויות משתמש משודרגות שמנצלות את מלוא יכולות המכשיר.
כדי לברר את רמת הביצועים של מכשיר, אפשר להשתמש ב-Jetpack ליבה ביצועים לספרייה. הספרייה הזו מדווחת על סיווג ביצועי המדיה של המכשיר כמוצהר. בגרסת ה-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")
מגניב
// 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); } }
לאחר מכן אפשר לאחזר את המאפיין 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.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. } } }
סיווגי הביצועים תואמים להעברות. ניתן לשדרג מכשיר לגרסה חדשה יותר בגרסת הפלטפורמה מבלי לעדכן את סיווג הביצועים שלה. לדוגמה, מכשיר שתומך בהתחלה בסיווג ביצועים 12, יכול לשדרג ל-Android 13 ימשיכו לדווח שהוא תומך בכיתת 12 אם הוא לא עונה על כיתה 13 בדרישות שלנו. כלומר, שיעור ביצועים מאפשר לקבץ מכשירים ביחד, בלי להסתמך על גרסת Android מסוימת.
רמת ביצועים 14
סיווג ביצועים 14 מסתמך על הדרישות שהוצגו בכיתה ביצועים 13. הדרישות הספציפיות לסיווג הביצועים מתפרסמות בכלי Android CDD. בנוסף לדרישות המוגברות לגבי פריטים מסיווג ביצועים 13, CDD מפרט את הדרישות בתחומים הבאים:
מדיה
- תמיכה באפקט גרעיניות סרט במפענחי חומרה מסוג AV1
- פרופיל הבסיס של AVIF
- הביצועים של מקודד AV1
- קודק וידאו HDR
- פורמט צבע RGBA_1010102
- דגימת טקסטורה של YUV
- איכות קידוד הווידאו
- מיקס אודיו בכמה ערוצים
מצלמה
- תוסף מצב לילה
- מצלמה ראשית עם תמיכה ב-HDR
- מצב סצנה של זיהוי פנים
Generic
- שכבות-על של חומרה
- מסך HDR
רמת ביצועים 13
סיווג ביצועים 13 מסתמך על הדרישות שהוצגו בכיתה ביצועים 12. הדרישות הספציפיות לסיווג הביצועים מתפרסמות בכלי Android CDD. בנוסף לדרישות המוגברות לגבי פריטים מסיווג ביצועים 12, CDD מפרט את הדרישות בתחומים הבאים:
מדיה
- מפענח חומרה AV1
- מפענחי חומרה מאובטחים
- זמן אחזור של אתחול המפענח
- זמן אחזור של אודיו הלוך ושוב
- אוזניות חוטיות והתקני אודיו בחיבור USB
- מכשירי MIDI
- סביבת ביצוע מהימנה שמגובת באמצעות חומרה
מצלמה
- התצוגה המקדימה מיוצבת
- צילום בהילוך איטי
- יחס זום מינימלי למצלמות Ultrawide
- מצלמה בו-זמנית
- מספר מצלמות לוגיות
- תרחיש לדוגמה של סטרימינג
רמת ביצועים 12
שיעור ביצועים 12 מתמקד בתרחישים לדוגמה במדיה. סיווג הביצועים הספציפי מפורסמות בגרסת Android, CDD. חוק ה-CDD מפרט את הדרישות בתחומים הבאים:
מדיה
- סשנים של קודק וידאו בו-זמנית
- זמן אחזור של אתחול המקודד
- טיפות פריים של המפענח
- איכות הקידוד
מצלמה
- רזולוציה וקצב פריימים
- הפעלה ותיעוד של זמני אחזור
FULL
או רמת חומרה גבוהה יותר- מקור חותמת הזמן הוא בזמן אמת
- יכולת RAW
Generic
- זיכרון
- קריאה וכתיבה של נתוני ביצועים
- רזולוציית המסך
- דחיסות מסך
רמת ביצועים 11
סיווג ביצועים 11 כולל קבוצת משנה של הדרישות לגבי סיווג הביצועים 12, מאפשרים למפתחים לספק חוויה מותאמת אישית בשלבים הקודמים, אבל עדיין של מכשירים שמותאמים במיוחד ל-AI. הדרישות הספציפיות לסיווג הביצועים מתפרסמות ב- מכשיר Android CDD.
מומלץ עבורך
- הערה: טקסט הקישור מוצג כאשר JavaScript מושבת
- זמן ההפעלה של האפליקציה