প্রতিটি রিলিজের সাথে সাথে, নির্দিষ্ট অ্যান্ড্রয়েড এপিআইগুলি অপ্রচলিত হয়ে যেতে পারে অথবা উন্নত ডেভেলপার অভিজ্ঞতা প্রদান বা নতুন প্ল্যাটফর্ম ক্ষমতা সমর্থন করার জন্য পুনর্নির্মাণের প্রয়োজন হতে পারে। এই ক্ষেত্রে, অ্যান্ড্রয়েড আনুষ্ঠানিকভাবে অপ্রচলিত এপিআইগুলিকে অবমূল্যায়ন করবে এবং ডেভেলপারদের পরিবর্তে নতুন এপিআই ব্যবহারের নির্দেশ দেবে।
অবচয় হ্রাসের অর্থ হল আমরা API গুলির জন্য অফিসিয়াল সাপোর্ট বন্ধ করে দিয়েছি, তবে সেগুলি ডেভেলপারদের জন্য উপলব্ধ থাকবে। এই পৃষ্ঠায় Android এর এই রিলিজে কিছু অবচয় হ্রাসের বিষয় তুলে ধরা হয়েছে। অন্যান্য অবচয় দেখতে, API diff রিপোর্টটি দেখুন।
রেন্ডারস্ক্রিপ্ট
অ্যান্ড্রয়েড ১২ থেকে শুরু করে, রেন্ডারস্ক্রিপ্ট এপিআইগুলি বন্ধ করে দেওয়া হয়েছে। এগুলি কাজ করতে থাকবে, তবে আমরা আশা করি যে ডিভাইস এবং উপাদান নির্মাতারা সময়ের সাথে সাথে হার্ডওয়্যার ত্বরণ সমর্থন প্রদান বন্ধ করে দেবে। জিপিইউ ত্বরণের পূর্ণ সুবিধা নিতে, আমরা রেন্ডারস্ক্রিপ্ট থেকে দূরে সরে যাওয়ার পরামর্শ দিচ্ছি।
অ্যান্ড্রয়েড প্লেলিস্ট
অ্যান্ড্রয়েড প্লেলিস্টগুলি বন্ধ করে দেওয়া হয়েছে। API আর রক্ষণাবেক্ষণ করা হচ্ছে না কিন্তু বর্তমান কার্যকারিতা সামঞ্জস্যের জন্য রয়ে গেছে।
আমরা প্লেলিস্টগুলি m3u ফাইল হিসেবে পড়ার এবং সংরক্ষণ করার পরামর্শ দিচ্ছি।
API অবচয় প্রদর্শন করুন
অ্যান্ড্রয়েড ডিভাইসগুলি বিভিন্ন ফর্ম ফ্যাক্টরে পাওয়া যাচ্ছে, যেমন বড় স্ক্রিন, ট্যাবলেট এবং ফোল্ডেবল। প্রতিটি ডিভাইসের জন্য উপযুক্তভাবে কন্টেন্ট রেন্ডার করার জন্য, আপনার অ্যাপকে স্ক্রিন বা ডিসপ্লের আকার নির্ধারণ করতে হবে। সময়ের সাথে সাথে অ্যান্ড্রয়েড এই তথ্য পুনরুদ্ধারের জন্য বিভিন্ন API সরবরাহ করেছে। অ্যান্ড্রয়েড ১১-এ আমরা WindowMetrics API চালু করেছি এবং এই পদ্ধতিগুলি বন্ধ করে দিয়েছি:
অ্যান্ড্রয়েড ১২-তে আমরা WindowMetrics ব্যবহারের পরামর্শ দিচ্ছি এবং এই পদ্ধতিগুলি বন্ধ করছি:
অ্যাপগুলিকে তাদের উইন্ডোর সীমানা অনুসন্ধানের জন্য WindowMetrics API ব্যবহার করতে হবে, অথবা বর্তমান ঘনত্ব অনুসন্ধানের জন্য Configuration.densityDpi ব্যবহার করতে হবে।
মনে রাখবেন যে Jetpack WindowManager লাইব্রেরিতে একটি WindowMetrics ক্লাস রয়েছে যা Android 4.0.1 (API লেভেল 14) এবং উচ্চতর সংস্করণ সমর্থন করে।
উদাহরণ
WindowMetrics কীভাবে ব্যবহার করবেন তার কিছু উদাহরণ এখানে দেওয়া হল।
প্রথমে, নিশ্চিত করুন যে আপনার অ্যাপটি তার কার্যকলাপগুলিকে সম্পূর্ণরূপে আকার পরিবর্তনযোগ্য করে তুলতে পারে।
যেকোনো UI-সম্পর্কিত কাজের জন্য, বিশেষ করে WindowManager.getCurrentWindowMetrics() জন্য, একটি কার্যকলাপকে কার্যকলাপ প্রসঙ্গের WindowMetrics উপর নির্ভর করতে হবে।
যদি আপনার অ্যাপটি একটি 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();