সাপোর্ট লাইব্রেরি

দ্রষ্টব্য: Android 9.0 (API স্তর 28) প্রকাশের সাথে AndroidX নামে একটি সমর্থন লাইব্রেরির একটি নতুন সংস্করণ রয়েছে যা জেটপ্যাকের অংশ। অ্যান্ড্রয়েডএক্স লাইব্রেরিতে বিদ্যমান সমর্থন লাইব্রেরি রয়েছে এবং সর্বশেষ জেটপ্যাক উপাদানগুলিও রয়েছে৷

আপনি সমর্থন লাইব্রেরি ব্যবহার চালিয়ে যেতে পারেন. ঐতিহাসিক নিদর্শন (যার সংস্করণ 27 এবং তার আগের, এবং android.support.* ) Google Maven-এ উপলব্ধ থাকবে। যাইহোক, সমস্ত নতুন লাইব্রেরি উন্নয়ন AndroidX লাইব্রেরিতে ঘটবে।

আমরা সমস্ত নতুন প্রকল্পে AndroidX লাইব্রেরি ব্যবহার করার পরামর্শ দিই। আপনার বিদ্যমান প্রকল্পগুলিকে AndroidX এ স্থানান্তরিত করার বিষয়টিও বিবেচনা করা উচিত।

একাধিক API সংস্করণ সমর্থন করে এমন অ্যাপ্লিকেশনগুলি বিকাশ করার সময়, আপনি Android এর পূর্ববর্তী সংস্করণগুলিতে নতুন বৈশিষ্ট্যগুলি সরবরাহ করার জন্য একটি আদর্শ উপায় চাইতে পারেন বা সমতুল্য কার্যকারিতায় ফিরে আসতে পারেন৷ প্ল্যাটফর্মের আগের সংস্করণগুলি পরিচালনা করার জন্য বিল্ডিং কোডের পরিবর্তে, আপনি সেই সামঞ্জস্যপূর্ণ স্তরটি প্রদান করতে এই লাইব্রেরিগুলিকে ব্যবহার করতে পারেন। এছাড়াও, সাপোর্ট লাইব্রেরিগুলি অতিরিক্ত সুবিধার ক্লাস এবং বৈশিষ্ট্যগুলি সরবরাহ করে যা স্ট্যান্ডার্ড ফ্রেমওয়ার্ক API-এ উপলব্ধ নয় আরও ডিভাইসে সহজ বিকাশ এবং সমর্থনের জন্য।

মূলত অ্যাপগুলির জন্য একটি একক বাইনারি লাইব্রেরি, অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি অ্যাপ ডেভেলপমেন্টের জন্য লাইব্রেরির একটি স্যুটে বিকশিত হয়েছে। এই লাইব্রেরিগুলির মধ্যে অনেকগুলি এখন দৃঢ়ভাবে সুপারিশ করা হয়েছে, যদি অপরিহার্য না হয় তবে অ্যাপ বিকাশের অংশ৷

এই দস্তাবেজটি সহায়তা লাইব্রেরির একটি ওভারভিউ প্রদান করে যাতে আপনি এর উপাদানগুলি বুঝতে এবং কীভাবে এটি আপনার অ্যাপে কার্যকরভাবে ব্যবহার করবেন।

সতর্কতা: সাপোর্ট লাইব্রেরি রিলিজ 26.0.0 (জুলাই 2017) দিয়ে শুরু করে, বেশিরভাগ লাইব্রেরি প্যাকেজের জন্য বেশিরভাগ সমর্থন লাইব্রেরি জুড়ে ন্যূনতম সমর্থিত API স্তর Android 4.0 (API স্তর 14) এ বেড়েছে। আরও তথ্যের জন্য, এই পৃষ্ঠায় সংস্করণ সমর্থন এবং প্যাকেজের নাম দেখুন।

সমর্থন লাইব্রেরি জন্য ব্যবহার করে

সমর্থন লাইব্রেরির জন্য কয়েকটি স্বতন্ত্র ব্যবহার রয়েছে। প্ল্যাটফর্মের পূর্ববর্তী সংস্করণগুলির জন্য পশ্চাদপদ সামঞ্জস্যের ক্লাসগুলি তাদের মধ্যে একটি। আপনি আপনার অ্যাপে সহায়তা লাইব্রেরিগুলি কীভাবে ব্যবহার করতে পারেন তার আরও সম্পূর্ণ তালিকা এখানে রয়েছে:

  • নতুন এপিআই-এর জন্য পশ্চাদগামী সামঞ্জস্যতা - সমর্থন লাইব্রেরিগুলির একটি বড় পরিমাণ নতুন ফ্রেমওয়ার্ক ক্লাস এবং পদ্ধতিগুলির জন্য পশ্চাদমুখী সামঞ্জস্য প্রদান করে। উদাহরণ স্বরূপ, Fragment সাপোর্ট ক্লাস অ্যান্ড্রয়েড 3.0 (API লেভেল 11) এর আগে চলমান ভার্সনে ডিভাইসে টুকরোগুলির জন্য সমর্থন প্রদান করে।
  • সুবিধা এবং হেল্পার ক্লাস - সাপোর্ট লাইব্রেরিগুলো বেশ কয়েকটি হেল্পার ক্লাস প্রদান করে, বিশেষ করে ইউজার ইন্টারফেস ডেভেলপমেন্টের জন্য। উদাহরণ স্বরূপ RecyclerView ক্লাসটি অনেক লম্বা তালিকা প্রদর্শন ও পরিচালনার জন্য একটি ইউজার ইন্টারফেস উইজেট প্রদান করে, যা এপিআই লেভেল 7 এবং তার উপরে থেকে অ্যান্ড্রয়েডের সংস্করণে ব্যবহারযোগ্য।
  • ডিবাগিং এবং ইউটিলিটিস - এমন অনেকগুলি বৈশিষ্ট্য রয়েছে যা আপনার অ্যাপে অন্তর্ভুক্ত করা কোডের বাইরে ইউটিলিটি প্রদান করে, যার মধ্যে রয়েছে পদ্ধতি ইনপুটগুলিতে উন্নত কোড লিন্ট চেকের জন্য support-annotations লাইব্রেরি এবং 65,536টিরও বেশি পদ্ধতির সাথে অ্যাপগুলি কনফিগার এবং বিতরণের জন্য মাল্টিডেক্স সমর্থন

সমর্থন বনাম ফ্রেমওয়ার্ক API ব্যবহার করে

সমর্থন লাইব্রেরিগুলি ক্লাস এবং পদ্ধতিগুলি প্রদান করে যা অ্যান্ড্রয়েড ফ্রেমওয়ার্কের মধ্যে APIগুলির সাথে ঘনিষ্ঠভাবে সাদৃশ্যপূর্ণ৷ এটি আবিষ্কার করার পরে, আপনি ভাবতে পারেন যে আপনার API এর ফ্রেমওয়ার্ক সংস্করণ বা সমর্থন লাইব্রেরির সমতুল্য ব্যবহার করা উচিত কিনা। ফ্রেমওয়ার্ক API-এর জায়গায় আপনার কখন সমর্থন লাইব্রেরি ক্লাস ব্যবহার করা উচিত তার নির্দেশিকা এখানে রয়েছে:

  • একটি নির্দিষ্ট বৈশিষ্ট্যের জন্য সামঞ্জস্য - আপনি যদি প্ল্যাটফর্মের পূর্ববর্তী সংস্করণগুলি চলমান ডিভাইসগুলিতে একটি সাম্প্রতিক প্ল্যাটফর্ম বৈশিষ্ট্য সমর্থন করতে চান তবে সমর্থন লাইব্রেরি থেকে সমতুল্য ক্লাস এবং পদ্ধতিগুলি ব্যবহার করুন৷
  • সম্পর্কিত লাইব্রেরি বৈশিষ্ট্যগুলির জন্য সামঞ্জস্য - আরও পরিশীলিত সমর্থন লাইব্রেরি ক্লাস এক বা একাধিক অতিরিক্ত সমর্থন লাইব্রেরি ক্লাসের উপর নির্ভর করতে পারে, তাই আপনার সেই নির্ভরতার জন্য সমর্থন লাইব্রেরি ক্লাস ব্যবহার করা উচিত। উদাহরণস্বরূপ, ViewPager সমর্থন শ্রেণীটি FragmentPagerAdapter বা FragmentStatePagerAdapter সমর্থন ক্লাসের সাথে ব্যবহার করা উচিত।
  • সাধারণ ডিভাইস সামঞ্জস্যতা - যদি আপনার কাছে একটি নির্দিষ্ট প্ল্যাটফর্ম বৈশিষ্ট্য না থাকে যা আপনি আপনার অ্যাপের সাথে একটি পশ্চাদগামী সামঞ্জস্যপূর্ণ উপায়ে ব্যবহার করতে চান, তবে আপনার অ্যাপে সমর্থন লাইব্রেরি ক্লাসগুলি ব্যবহার করা এখনও একটি ভাল ধারণা। উদাহরণস্বরূপ, আপনি ফ্রেমওয়ার্ক Activity ক্লাসের জায়গায় ActivityCompat ব্যবহার করতে চাইতে পারেন, যাতে আপনি পরে নতুন বৈশিষ্ট্যগুলির সুবিধা নিতে পারেন, যেমন Android 6.0 (API স্তর 23) এ প্রবর্তিত নতুন অনুমতি মডেল অন্তর্ভুক্ত করা।

হোস্ট ডিভাইস প্ল্যাটফর্ম সংস্করণের সীমাবদ্ধতার কারণে, প্ল্যাটফর্ম API ক্লাসগুলির একটি সামঞ্জস্যপূর্ণ বাস্তবায়ন প্রদান করে এমন সমর্থন লাইব্রেরি ক্লাসগুলি সাম্প্রতিক রিলিজে উপলব্ধ কার্যকারিতার সম্পূর্ণ সেট প্রদান করতে সক্ষম নাও হতে পারে। এই ক্ষেত্রে, সাপোর্ট লাইব্রেরি ক্লাসগুলি সুন্দরভাবে হ্রাস করার জন্য ডিজাইন করা হয়েছে, এবং বর্তমান, প্ল্যাটফর্ম API-এর সমস্ত কার্যকারিতা বা ডেটা প্রদান নাও করতে পারে৷ এই কারণে, আপনার লাইব্রেরি ক্লাস এবং আপনি যে পদ্ধতিগুলি ব্যবহার করেন তার জন্য রেফারেন্স ডকুমেন্টেশন পর্যালোচনা করা উচিত এবং আপনার অ্যাপ দ্বারা সমর্থিত প্ল্যাটফর্মের প্রথমতম সংস্করণে চলমান ডিভাইসগুলিতে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা উচিত।

দ্রষ্টব্য: সমর্থন লাইব্রেরি প্রতিটি ফ্রেমওয়ার্ক API এর জন্য সমতুল্য ক্লাস এবং পদ্ধতি প্রদান করে না। কিছু ক্ষেত্রে, আপনাকে একটি সুস্পষ্ট SDK সংস্করণ চেক সহ একটি ফ্রেমওয়ার্ক পদ্ধতি কল মোড়ানো এবং একটি ডিভাইসে উপলব্ধ নয় এমন পদ্ধতিগুলি পরিচালনা করার জন্য বিকল্প কোড প্রদান করতে হতে পারে৷ আপনার কোডে সংস্করণ চেক ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, বিভিন্ন প্ল্যাটফর্ম সংস্করণ সমর্থন করা দেখুন।

সংস্করণ সমর্থন এবং প্যাকেজ নাম

কিছু সাপোর্ট লাইব্রেরি প্যাকেজের প্যাকেজের নাম রয়েছে যাতে তারা প্রাথমিকভাবে সমর্থিত API-এর ন্যূনতম স্তর নির্দেশ করে, av# স্বরলিপি ব্যবহার করে, যেমন support-v4 প্যাকেজ। সমর্থন লাইব্রেরি সংস্করণ 26.0.0 (জুলাই 2017 এ প্রকাশিত) দিয়ে শুরু করে, সমস্ত সমর্থন লাইব্রেরি প্যাকেজের জন্য সর্বনিম্ন সমর্থিত API স্তর Android 4.0 (API স্তর 14) এ পরিবর্তিত হয়েছে৷ এই কারণে, সমর্থন লাইব্রেরির সাম্প্রতিক প্রকাশের সাথে কাজ করার সময়, আপনার মনে করা উচিত নয় যে v# প্যাকেজ স্বরলিপি একটি সর্বনিম্ন API সমর্থন স্তর নির্দেশ করে। সাম্প্রতিক রিলিজে এই পরিবর্তনের মানে হল যে v4 এবং v7 সহ লাইব্রেরি প্যাকেজগুলি মূলত তারা সমর্থন করে এমন ন্যূনতম স্তরের API এর সমতুল্য। উদাহরণস্বরূপ, সমর্থন-v4 এবং সমর্থন-v7 প্যাকেজ উভয়ই 26.0.0 এবং উচ্চতর থেকে সমর্থন লাইব্রেরির প্রকাশের জন্য 14-এর সর্বনিম্ন API স্তর সমর্থন করে।

সমর্থন লাইব্রেরি রিলিজ সংস্করণ

সাপোর্ট লাইব্রেরির রিলিজ সংস্করণ , যেমন 24.2.0 বা 25.0.1, সেই রিলিজে যেকোন লাইব্রেরি দ্বারা সমর্থিত ন্যূনতম API স্তরের থেকে আলাদা৷ রিলিজ সংস্করণ নম্বর নির্দেশ করে যে প্ল্যাটফর্ম API এর কোন সংস্করণের বিরুদ্ধে এটি নির্মিত হয়েছিল, এবং অতএব, লাইব্রেরির এই সংস্করণে সাম্প্রতিকতম APIগুলি কী অন্তর্ভুক্ত করা যেতে পারে

বিশেষ করে, রিলিজ সংস্করণ নম্বরের প্রথম বিভাগ, উদাহরণস্বরূপ 24.2.0 সংস্করণে 24, সাধারণত প্ল্যাটফর্ম API-এর যে সংস্করণটি প্রকাশ করা হয়েছিল তার সাথে মিলে যায়। সমর্থন লাইব্রেরির রিলিজ সংস্করণ স্তরটি নির্দেশ করে যে এটি সেই API স্তরের কিছু বৈশিষ্ট্য অন্তর্ভুক্ত করে, তবে আপনার অনুমান করা উচিত নয় যে এটি নতুন প্ল্যাটফর্ম API সংস্করণে প্রকাশিত সমস্ত বৈশিষ্ট্যের সাথে সামঞ্জস্য প্রদান করে।

লাইব্রেরি নির্ভরতা

অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি স্যুটের বেশিরভাগ লাইব্রেরির এক বা একাধিক লাইব্রেরির উপর কিছু নির্ভরতা রয়েছে। উদাহরণস্বরূপ, প্রায় সমস্ত সমর্থন লাইব্রেরির support-compat প্যাকেজের উপর নির্ভরশীলতা রয়েছে। সাধারণভাবে, আপনাকে সমর্থন লাইব্রেরি নির্ভরতা সম্পর্কে চিন্তা করার দরকার নেই, কারণ গ্রেডল বিল্ড টুল আপনার জন্য লাইব্রেরি নির্ভরতাগুলি পরিচালনা করে, স্বয়ংক্রিয়ভাবে নির্ভরশীল লাইব্রেরিগুলি অন্তর্ভুক্ত করে।

আপনি যদি দেখতে চান যে আপনার অ্যাপে কোন লাইব্রেরি এবং লাইব্রেরি নির্ভরতা অন্তর্ভুক্ত রয়েছে, তাহলে Android সাপোর্ট লাইব্রেরি এবং অন্যান্য লাইব্রেরি সহ সেই প্রকল্পের নির্ভরতাগুলির একটি প্রতিবেদন পেতে আপনার অ্যাপ ডেভেলপমেন্ট প্রকল্পের বিল্ড রুটে নিম্নলিখিত কমান্ডটি চালান:

gradle -q dependencies your-app-project:dependencies

Gradle ব্যবহার করে আপনার ডেভেলপমেন্ট প্রজেক্টে সাপোর্ট লাইব্রেরি যোগ করার বিষয়ে আরও তথ্যের জন্য, Support Library Setup দেখুন। Gradle এর সাথে কাজ করার বিষয়ে আরও তথ্যের জন্য, আপনার বিল্ড কনফিগার করুন দেখুন।

মনে রাখবেন যে সমস্ত অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি প্ল্যাটফর্মের কিছু বেস লেভেলের উপরও নির্ভর করে, সাম্প্রতিক রিলিজের জন্য, যা Android 4.0 (API লেভেল 14) বা উচ্চতর।