کلاس عملکرد استانداردی است که اولینبار در Android 12 معرفی شد. کلاس عملکرد مجموعهای از قابلیتهای دستگاه را تعریف میکند که فراتر از الزامات پایه Android است.
هر نسخه Android کلاس عملکرد مربوط به خود را دارد که در سند تعریف سازگاری Android (CDD) آن نسخه تعریف شده است. مجموعه آزمایش سازگاری Android (CTS) الزامات CDD را تأیید میکند.
هر دستگاه مجهز به Android کلاس عملکردی را که پشتیبانی میکند اعلام میکند. توسعهدهندگان میتوانند کلاس عملکرد دستگاه را در زمان اجرا پیدا کنند و تجربههای ارتقایافتهای ارائه دهند که از قابلیتهای دستگاه بهطور کامل بهره میبرد.
برای پیدا کردن سطح کلاس عملکرد دستگاه، از کتابخانه Jetpack Core Performance استفاده کنید. این کتابخانه سطح کلاس عملکرد رسانه (MPC) دستگاه را همانطور که در اطلاعات نسخه ساخت اعلام شده است یا براساس دادههای خدمات Google Play گزارش میدهد.
با افزودن وابستگی برای واحدهای مربوطه در فایل gradle خود شروع کنید:
کاتلین
// 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'
سپس، نمونهای از پیادهسازی
DevicePerformance
را، مثل
PlayServicesDevicePerformance،
در رویداد چرخه حیات onCreate() مربوط به Application ایجاد کنید. این کار فقط باید یکبار در برنامهتان انجام شود.
کاتلین
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) } }
جاوا
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 را بازیابی کنید تا تجربه برنامهتان را براساس قابلیتهای دستگاه سفارشی کنید:
کاتلین
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. } } } }
جاوا
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. } } }
سطوح کلاس عملکرد سازگار با آینده هستند. دستگاه میتواند بدون بهروزرسانی کلاس عملکرد خود، به نسخه جدیدتر پلاتفرم ارتقا یابد. برای مثال، دستگاهی که در ابتدا از کلاس عملکرد ۳۳ پشتیبانی میکند میتواند به Android 14 ارتقا یابد و اگر شرایط کلاس عملکرد ۳۴ را نداشته باشد، همچنان گزارش دهد که از کلاس عملکرد ۳۳ پشتیبانی میکند. این کار امکان گروهبندی دستگاهها را بدون اتکا به نسخه خاصی از Android فراهم میکند.
کلاس عملکرد رسانه ۳۵
MPC 35 در Android 15 معرفی شد و براساس الزامات معرفیشده در MPC 34 ساخته شده است. الزامات خاص MPC 35 در سند تعریف سازگاری Android 15 منتشر شده است. علاوهبر الزامات افزایشیافته برای موارد MPC 34، سند تعریف سازگاری الزامات را در حوزههای زیر مشخص میکند:
رسانه
- رمزگشایی قابهای رهاشده
- ویرایش HDR
- جنبههای رنگ پویا
- نسبت ابعادی عمودی
دوربین
- JPEG_R
- لرزشگیر پیشنمایش
گرافیک
- افزونههای EGL
- ساختارهای Vulkan
کلاس عملکرد رسانه ۳۴
MPC 34 در Android 14 معرفی شد و براساس الزامات معرفیشده در MPC 33 ساخته شده است. الزامات خاص MPC 34 در Android 14 CDD منتشر شده است. علاوهبر الزامات افزایشیافته برای موارد MPC 33، «سند تعریف سازگاری» الزامات را در حوزههای زیر مشخص میکند:
رسانه
- پشتیبانی از جلوه دانهدانه در رمزگشاهای سختافزاری AV1
- نمایه مبنای AVIF
- عملکرد کدبند AV1
- کدکهای ویدیو HDR
- قالب رنگ RGBA_1010102
- نمونهبرداری بافت YUV
- کیفیت کدبندی ویدیو
- صداآمیزی چندکاناله
دوربین
- افزونه حالت شب
- دوربین اصلی با قابلیت HDR
- حالت منظره تشخیص چهره
عمومی
- رونهادهای سختافزاری
- نمایشگر HDR
کلاس عملکرد رسانه ۳۳
MPC 33 در Android 13 معرفی شد و براساس الزامات معرفیشده در MPC 31 ساخته شده است. الزامات خاص MPC 33 در Android 13 CDD منتشر شده است. علاوهبر الزامات افزایشیافته برای موارد MPC 31، سند تعریف سازگاری الزامات را در حوزههای زیر مشخص میکند:
رسانه
- رمزگشای سختافزاری AV1
- رمزگشاهای سختافزاری ایمن
- تأخیر مقداردهی اولیه کدگشا
- تأخیر صوتی رفتوبرگشت
- هدستهای سیمی و دستگاههای صوتی USB
- دستگاههای MIDI
- محیط اجرای امن با پشتوانه سختافزاری
دوربین
- پیشنمایش لرزشگیر
- ضبط حرکت آهسته
- حداقل نسبت بزرگنمایی برای دوربینهای زاویه بسیار باز
- دوربین همزمان
- دوربین چندگانه منطقی
- مورد استفاده جاریسازی
کلاس عملکرد رسانه ۳۱
MPC 31 در Android 12 معرفی شد. الزامات خاص MPC 31 در Android 12 CDD منتشر شده است. CDD الزامات را در زمینههای زیر مشخص میکند:
رسانه
- جلسههای کدک ویدیویی همزمان
- تأخیر مقداردهی اولیه کدبند
- افت فریم رمزگشا
- کیفیت کدبندی
دوربین
- وضوح و نرخ فریم
- تأخیرهای راهاندازی و ضبط
FULLیا سطح سختافزار بهتر- منبع مُهر زمان همزمان است
- قابلیت RAW
عمومی
- حافظه
- عملکرد خواندن و نوشتن
- وضوح صفحهنمایش
- تراکم صفحهنمایش
کلاس عملکرد رسانه ۳۰
MPC 30 شامل زیرمجموعهای از الزامات MPC 31 است که به توسعهدهندگان اجازه میدهد تجربهای سفارشی در دستگاههای قدیمیتر اما همچنان بسیار توانمند ارائه دهند. الزامات خاص کلاس عملکرد در سند تعریف سازگاری Android 11 منتشر شده است.
توصیهشده برای شما
- توجه: وقتی جاوا اسکریپت خاموش باشد، نوشتار پیوند نمایش داده میشود
- زمان راهاندازی برنامه