পারফর্ম্যান্স ক্লাস হল একটি স্ট্যান্ডার্ড যা প্রথম Android 12-এ চালু করা হয়েছে। পারফর্ম্যান্স ক্লাস ডিভাইসের এমন কিছু ক্ষমতার সেটকে সংজ্ঞায়িত করে যা Android-এর বেসলাইন প্রয়োজনীয়তার বাইরে।
Android-এর প্রতিটি ভার্সনের নিজস্ব পারফর্ম্যান্স ক্লাস আছে, যা সেই ভার্সনের Android কম্প্যাটিবিলিটি ডেফিনেশন ডকুমেন্ট (CDD)-এ উল্লেখ করা আছে। Android কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) CDD-এর প্রয়োজনীয়তা যাচাই করে।
Android দ্বারা পরিচালিত প্রতিটি ডিভাইস, এটি যে পারফর্ম্যান্স ক্লাস সাপোর্ট করে তা ঘোষণা করে। ডেভেলপাররা রানটাইমে ডিভাইসের পারফর্ম্যান্স ক্লাস খুঁজে পেতে পারেন এবং আপগ্রেড করা অভিজ্ঞতা প্রদান করতে পারেন যা ডিভাইসের ক্ষমতার সম্পূর্ণ সুবিধা গ্রহণ করে।
কোনও ডিভাইসের পারফর্ম্যান্স ক্লাস লেভেল খুঁজে পেতে, Jetpack Core Performance লাইব্রেরি ব্যবহার করুন। এই লাইব্রেরি ডিভাইসের মিডিয়া পারফর্ম্যান্স ক্লাস (MPC) লেভেল রিপোর্ট করে যা বিল্ড ভার্সন সংক্রান্ত তথ্য বা Google Play পরিষেবার ডেটার উপর ভিত্তি করে ঘোষণা করা হয়।
আপনার গ্রেডেল ফাইলে প্রাসঙ্গিক মডিউলের জন্য ডিপেন্ডেন্সি যোগ করে শুরু করুন:
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'
তারপর, আপনার Application-এর onCreate() লাইফসাইকেল ইভেন্টে
DevicePerformance
ইমপ্লিমেন্টেশনের একটি ইনস্ট্যান্স তৈরি করুন, যেমন
PlayServicesDevicePerformance। আপনার অ্যাপে এটি শুধুমাত্র
একবারই করতে হবে।
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) } }
জাভা
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. } } } }
জাভা
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 ১৪-এ আপগ্রেড করা যেতে পারে এবং পারফর্ম্যান্স ক্লাস ৩৪-এর প্রয়োজনীয়তা পূরণ না করলে, পারফর্ম্যান্স ক্লাস ৩৩-এ কাজ করা চালিয়ে যেতে পারে। এটি কোনও নির্দিষ্ট Android ভার্সনের উপর নির্ভর না করেই ডিভাইসগুলিকে একসাথে গ্রুপ করার অনুমতি দেয়।
মিডিয়া পারফর্ম্যান্স ক্লাস ৩৫
Android 15-এ MPC 35 চালু করা হয়েছে এবং MPC 34-এ চালু করা প্রয়োজনীয়তার উপর ভিত্তি করে তৈরি করা হয়েছে। নির্দিষ্ট MPC 35 সংক্রান্ত প্রয়োজনীয়তা Android 15 CDD-তে প্রকাশ করা হয়েছে। MPC 34 থেকে আইটেমের জন্য বর্ধিত প্রয়োজনীয়তা ছাড়াও, CDD নিম্নলিখিত ক্ষেত্রে প্রয়োজনীয়তা নির্দিষ্ট করে:
মিডিয়া
- ডিকোডিং ফ্রেম ড্রপ
- HDR এডিটিং
- ডায়নামিক কালার অ্যাসপেক্ট
- পোর্ট্রেট অ্যাস্পেক্ট রেশিও
ক্যামেরা
- JPEG_R
- প্রিভিউ স্টেবিলাইজেশন
গ্রাফিক্স
- EGL এক্সটেনশন
- Vulkan স্ট্রাকচার
মিডিয়া পারফর্ম্যান্স ক্লাস ৩৪
MPC 34, Android 14-এ চালু করা হয়েছে এবং MPC 33-এ চালু করা প্রয়োজনীয়তার উপর ভিত্তি করে তৈরি করা হয়েছে। MPC 34-এর নির্দিষ্ট প্রয়োজনীয়তা Android 14 CDD-তে প্রকাশ করা হয়েছে। MPC 33 থেকে আইটেমের জন্য বর্ধিত প্রয়োজনীয়তা ছাড়াও, CDD নিম্নলিখিত ক্ষেত্রে প্রয়োজনীয়তা নির্দিষ্ট করে:
মিডিয়া
- AV1 হার্ডওয়্যার ডিকোডারে ফিল্ম গ্রেন এফেক্ট কাজ করে
- AVIF বেসলাইন প্রোফাইল
- AV1 এনকোডার পারফর্ম্যান্স
- HDR ভিডিও কোডেক
- RGBA_1010102 কালার ফর্ম্যাট
- YUV টেক্সচার স্যাম্পলিং
- ভিডিও এনকোডিং কোয়ালিটি
- মাল্টিচ্যানেল অডিও মিক্সিং
ক্যামেরা
- নাইট মোড এক্সটেনশন
- HDR-এর সুবিধা সহ প্রাইমারি ক্যামেরা
- ফেস ডিটেকশন সিন মোড
সাধারণ
- হার্ডওয়্যার ওভারলে
- HDR ডিসপ্লে
মিডিয়া পারফর্ম্যান্স ক্লাস ৩৩
MPC 33, Android 13-এ চালু করা হয়েছে এবং MPC 31-এ চালু করা প্রয়োজনীয়তার উপর ভিত্তি করে তৈরি করা হয়েছে। MPC 33-এর নির্দিষ্ট প্রয়োজনীয়তা Android 13 CDD-তে প্রকাশ করা হয়েছে। MPC 31 থেকে আইটেমের জন্য বর্ধিত প্রয়োজনীয়তা ছাড়াও, CDD নিম্নলিখিত ক্ষেত্রে প্রয়োজনীয়তা নির্দিষ্ট করে:
মিডিয়া
- AV1 হার্ডওয়্যার ডিকোডার
- নিরাপদ হার্ডওয়্যার ডিকোডার
- ডিকোডার আরম্ভ করার লেটেন্সি
- রাউন্ড-ট্রিপ অডিও লেটেন্সি
- ওয়্যার্ড হেডসেট ও USB অডিও ডিভাইস
- MIDI ডিভাইসগুলি
- হার্ডওয়্যার-ব্যাকড ট্রাস্টেড এক্সিকিউশন এনভায়রনমেন্ট
ক্যামেরা
- প্রিভিউ স্টেবিলাইজেশন
- স্লো-মো রেকর্ডিং
- আল্ট্রাওয়াইড ক্যামেরার জন্য ন্যূনতম জুম অনুপাত
- কনকারেন্ট ক্যামেরা
- লজিক্যাল মাল্টি-ক্যামেরা
- স্ট্রিম ব্যবহারের উদাহরণ
মিডিয়া পারফর্ম্যান্স ক্লাস ৩১
Android 12-এ MPC 31 চালু করা হয়েছে। নির্দিষ্ট MPC 31 সংক্রান্ত প্রয়োজনীয়তা Android 12 CDD-তে প্রকাশ করা হয়েছে। CDD নিম্নলিখিত ক্ষেত্রগুলিতে প্রয়োজনীয়তা নির্দিষ্ট করে:
মিডিয়া
- একইসাথে চলা ভিডিও কোডেক সেশন
- এনকোডার শুরু করার লেটেন্সি
- ডিকোডার ফ্রেম ড্রপ
- এনকোডিং কোয়ালিটি
ক্যামেরা
- রেজোলিউশন ও ফ্রেম রেট
- স্টার্টআপ ও ক্যাপচার লেটেন্সি
FULLবা আরও উন্নত হার্ডওয়্যার লেভেল- টাইমস্ট্যাম্প সোর্স রিয়েলটাইম
- RAW ক্ষমতা
সাধারণ
- মেমরি
- রিড ও রাইট পারফর্ম্যান্স
- স্ক্রিন রেজোলিউশন
- স্ক্রিন ডেনসিটি
মিডিয়া পারফর্ম্যান্স ক্লাস ৩০
MPC 30-তে MPC 31-এর প্রয়োজনীয়তার সাবসেট অন্তর্ভুক্ত থাকে, যা ডেভেলপারদের আগের কিন্তু এখনও অত্যন্ত দক্ষ ডিভাইসে কাস্টমাইজ করা অভিজ্ঞতা প্রদান করতে দেয়। নির্দিষ্ট পারফর্ম্যান্স ক্লাস সংক্রান্ত প্রয়োজনীয়তা Android 11 CDD-তে প্রকাশ করা হয়েছে।
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- অ্যাপ স্টার্টআপ টাইম