প্রতিটি রিলিজের সাথে, নির্দিষ্ট অ্যান্ড্রয়েড এপিআই অপ্রচলিত হয়ে যেতে পারে অথবা আরও ভালো ডেভেলপার অভিজ্ঞতা প্রদান করতে বা প্ল্যাটফর্মের নতুন সক্ষমতা সমর্থন করার জন্য সেগুলোকে রিফ্যাক্টর করার প্রয়োজন হতে পারে। এই ক্ষেত্রে, অ্যান্ড্রয়েড আনুষ্ঠানিকভাবে অপ্রচলিত এপিআইগুলোকে ডেপ্রিকেটেড করে দেবে এবং ডেভেলপারদের পরিবর্তে ব্যবহারের জন্য নতুন এপিআইগুলোর দিকে নির্দেশ করবে।
ডেপ্রিকেশন মানে হলো আমরা এপিআইগুলোর জন্য আনুষ্ঠানিক সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলো ডেভেলপারদের জন্য উপলব্ধ থাকবে। এই পৃষ্ঠাটি অ্যান্ড্রয়েডের এই রিলিজের কিছু ডেপ্রিকেশন তুলে ধরেছে। অন্যান্য ডেপ্রিকেশন দেখতে, এপিআই ডিফারেন্স রিপোর্টটি দেখুন।
রেন্ডারস্ক্রিপ্ট
অ্যান্ড্রয়েড ১২ থেকে RenderScript API-গুলো অপ্রচলিত হয়ে গেছে। এগুলো কাজ করতে থাকবে, কিন্তু আমরা আশা করি যে সময়ের সাথে সাথে ডিভাইস এবং কম্পোনেন্ট নির্মাতারা হার্ডওয়্যার অ্যাক্সিলারেশন সাপোর্ট দেওয়া বন্ধ করে দেবে। GPU অ্যাক্সিলারেশনের সম্পূর্ণ সুবিধা নিতে, আমরা RenderScript থেকে সরে আসার পরামর্শ দিই।
অ্যান্ড্রয়েড প্লেলিস্ট
অ্যান্ড্রয়েড প্লেলিস্ট এখন আর ব্যবহারযোগ্য নয়। এপিআইটি আর রক্ষণাবেক্ষণ করা হয় না, কিন্তু সামঞ্জস্য রক্ষার জন্য বর্তমান কার্যকারিতাটি রাখা হয়েছে।
আমরা প্লেলিস্টগুলো m3u ফাইল হিসেবে পড়া এবং সংরক্ষণ করার পরামর্শ দিই।
এপিআই অপ্রচলিত প্রদর্শন করুন
অ্যান্ড্রয়েড ডিভাইসগুলো এখন বিভিন্ন ফর্ম ফ্যাক্টরে পাওয়া যাচ্ছে, যেমন বড় স্ক্রিন, ট্যাবলেট এবং ফোল্ডেবল। প্রতিটি ডিভাইসের জন্য কন্টেন্ট যথাযথভাবে রেন্ডার করতে, আপনার অ্যাপকে স্ক্রিন বা ডিসপ্লের আকার নির্ধারণ করতে হয়। সময়ের সাথে সাথে অ্যান্ড্রয়েড এই তথ্য সংগ্রহের জন্য বিভিন্ন এপিআই (API) প্রদান করেছে। অ্যান্ড্রয়েড ১১-এ আমরা WindowMetrics এপিআই চালু করেছি এবং এই মেথডগুলোকে ডেপ্রিকেটেড (deprecated) করেছি:
অ্যান্ড্রয়েড ১২-এ আমরা WindowMetrics ব্যবহারের সুপারিশ অব্যাহত রাখছি এবং এই মেথডগুলোকে অপ্রচলিত ঘোষণা করছি:
অ্যাপগুলোকে তাদের উইন্ডোর সীমানা জানতে WindowMetrics API, অথবা বর্তমান ঘনত্ব জানতে Configuration.densityDpi ব্যবহার করা উচিত।
উল্লেখ্য যে, Jetpack WindowManager লাইব্রেরিতে একটি WindowMetrics ক্লাস রয়েছে যা Android 4.0.1 (API লেভেল 14) এবং তার পরবর্তী সংস্করণ সমর্থন করে।
উদাহরণ
WindowMetrics কীভাবে ব্যবহার করতে হয় তার কিছু উদাহরণ এখানে দেওয়া হলো।
প্রথমত, নিশ্চিত করুন যে আপনার অ্যাপের অ্যাক্টিভিটিগুলো সম্পূর্ণরূপে রিসাইজযোগ্য ।
যেকোনো UI-সম্পর্কিত কাজের জন্য একটি অ্যাক্টিভিটির অ্যাক্টিভিটি কনটেক্সট থেকে WindowMetrics উপর নির্ভর করা উচিত, বিশেষ করে WindowManager.getCurrentWindowMetrics() উপর।
আপনার অ্যাপ যদি একটি MediaProjection তৈরি করে, তবে এর বাউন্ডস অবশ্যই সঠিক আকারের হতে হবে, কারণ প্রজেকশনটি ডিসপ্লেকে ধারণ করে। যদি অ্যাপটি সম্পূর্ণরূপে রিসাইজযোগ্য হয়, তবে অ্যাক্টিভিটি কনটেক্সট সঠিক বাউন্ডস ফেরত দেয়।
কোটলিন
val projectionMetrics = activityContext .getSystemService(WindowManager::class.java).maximumWindowMetrics
জাভা
WindowMetrics projectionMetrics = activityContext .getSystemService(WindowManager.class).getMaximumWindowMetrics();
যদি অ্যাপটি সম্পূর্ণরূপে রিসাইজযোগ্য না হয়, তবে এটিকে অবশ্যই একটি WindowContext ইনস্ট্যান্স থেকে বাউন্ডস কোয়েরি করতে হবে এবং WindowManager.getMaximumWindowMetrics() ব্যবহার করে অ্যাপ্লিকেশনটির জন্য উপলব্ধ সর্বাধিক ডিসপ্লে এলাকার WindowMetrics পুনরুদ্ধার করতে হবে।
কোটলিন
val windowContext = context.createWindowContext(mContext.display!!, WindowManager.LayoutParams.TYPE_APPLICATION, null) val projectionMetrics = windowContext.getSystemService(WindowManager::class.java) .maximumWindowMetrics
জাভা
Context windowContext = mContext.createWindowContext(mContext.getDisplay(), WindowManager.LayoutParams.TYPE_APPLICATION, null; WindowMetrics projectionMetrics = windowContext.getWindowManager() .getMaximumWindowMetrics();