کلاس عملکرد

کلاس عملکرد استانداردی است که برای اولین بار در اندروید 12 معرفی شد. کلاس عملکرد مجموعه ای از قابلیت های دستگاه را تعریف می کند که فراتر از الزامات پایه اندروید است.

هر نسخه از اندروید کلاس عملکرد مربوط به خود را دارد که در سند تعریف سازگاری اندروید (CDD) آن نسخه تعریف شده است. مجموعه تست سازگاری اندروید (CTS) الزامات CDD را تأیید می کند.

هر دستگاه مجهز به اندروید کلاس عملکردی را که پشتیبانی می کند را اعلام می کند. توسعه دهندگان می توانند کلاس عملکرد دستگاه را در زمان اجرا پیدا کنند و تجربیات ارتقا یافته ای را ارائه دهند که از قابلیت های دستگاه نهایت استفاده را ببرد.

برای پیدا کردن سطح کلاس عملکرد دستگاه، از کتابخانه 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.
    }
  }
}

سطوح کلاس عملکرد با آینده سازگار است. یک دستگاه می تواند بدون به روز رسانی کلاس عملکرد خود به نسخه پلتفرم جدیدتر ارتقا یابد. برای مثال، دستگاهی که در ابتدا از کلاس عملکرد 33 پشتیبانی می‌کند، می‌تواند به اندروید 14 ارتقا یابد و در صورتی که الزامات کلاس عملکرد 34 را برآورده نکند، همچنان گزارش می‌دهد که از کلاس عملکرد 33 پشتیبانی می‌کند. این اجازه می دهد تا دستگاه ها را بدون اتکا به یک نسخه اندروید خاص گروه بندی کنید.

شکل 1. دستگاه‌ها می‌توانند نسخه‌های Android را ارتقا دهند و گزارش دهند که از کلاسی که در ابتدا پشتیبانی می‌کنند، پشتیبانی می‌کنند.

کلاس عملکرد رسانه 35

MPC 35 در اندروید 15 معرفی شد و بر اساس الزامات معرفی شده در MPC 34 ساخته شده است. الزامات خاص MPC 35 در CDD Android 15 منتشر شده است. علاوه بر افزایش الزامات برای موارد از MPC 34، CDD الزامات را در زمینه های زیر مشخص می کند:

رسانه ها

  • افت فریم رمزگشایی
  • ویرایش HDR
  • جنبه های رنگ پویا
  • نسبت ابعاد پرتره

دوربین

  • JPEG_R
  • پیش نمایش تثبیت

گرافیک

  • پسوندهای EGL
  • سازه های ولکان

کلاس عملکرد رسانه 34

MPC 34 در اندروید 14 معرفی شد و بر اساس الزامات معرفی شده در MPC 33 ساخته شده است. الزامات خاص MPC 34 در CDD Android 14 منتشر شده است. علاوه بر افزایش الزامات برای موارد از MPC 33، CDD الزامات را در زمینه های زیر مشخص می کند:

رسانه ها

  • پشتیبانی از جلوه دانه فیلم در رمزگشاهای سخت افزاری AV1
  • نمایه خط پایه AVIF
  • عملکرد رمزگذار AV1
  • کدک های ویدیویی HDR
  • فرمت رنگی RGBA_1010102
  • نمونه برداری بافت YUV
  • کیفیت رمزگذاری ویدیو
  • میکس صدا چند کاناله

دوربین

  • پسوند حالت شب
  • دوربین اصلی با قابلیت HDR
  • حالت صحنه تشخیص چهره

ژنرال

  • پوشش های سخت افزاری
  • نمایشگر HDR

کلاس عملکرد رسانه 33

MPC 33 در اندروید 13 معرفی شد و بر اساس الزامات معرفی شده در MPC 31 ساخته شده است. الزامات خاص MPC 33 در CDD Android 13 منتشر شده است. علاوه بر افزایش الزامات برای موارد از MPC 31، CDD الزامات را در زمینه های زیر مشخص می کند:

رسانه ها

  • رسیور سخت افزاری AV1
  • رمزگشاهای سخت افزاری ایمن
  • تأخیر اولیه رسیور
  • تأخیر صوتی رفت و برگشت
  • هدست های سیمی و دستگاه های صوتی USB
  • دستگاه های MIDI
  • محیط اجرای قابل اعتماد با پشتوانه سخت افزار

دوربین

  • پیش نمایش تثبیت
  • ضبط آهسته
  • حداقل نسبت زوم برای دوربین های فوق عریض
  • دوربین همزمان
  • چند دوربین منطقی
  • مورد استفاده از جریان

کلاس عملکرد رسانه 31

MPC 31 در اندروید 12 معرفی شد. الزامات خاص MPC 31 در CDD Android 12 منتشر شده است. CDD الزامات را در زمینه های زیر مشخص می کند:

رسانه ها

  • جلسات کدک ویدیویی همزمان
  • تأخیر اولیه کدگذار
  • افت فریم رسیور
  • کیفیت رمزگذاری

دوربین

  • وضوح و نرخ فریم
  • راه اندازی و ثبت تاخیرها
  • سطح سخت افزار FULL یا بهتر
  • منبع مهر زمانی بیدرنگ است
  • قابلیت RAW

ژنرال

  • حافظه
  • خواندن و نوشتن عملکرد
  • وضوح صفحه نمایش
  • تراکم صفحه نمایش

کلاس عملکرد رسانه 30

MPC 30 شامل زیرمجموعه‌ای از الزامات MPC 31 است که به توسعه‌دهندگان اجازه می‌دهد تجربه‌ای متناسب با دستگاه‌های قدیمی‌تر اما هنوز هم بسیار توانمند ارائه دهند. الزامات کلاس عملکرد خاص در CDD Android 11 منتشر شده است.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}