লাইব্রেরি সেটআপ সমর্থন করুন

দ্রষ্টব্য: অ্যান্ড্রয়েড ৯.০ (এপিআই লেভেল ২৮) প্রকাশের সাথে সাথে অ্যান্ড্রয়েডএক্স (AndroidX) নামে একটি নতুন সাপোর্ট লাইব্রেরি এসেছে, যা জেটপ্যাক (Jetpack) -এর একটি অংশ। অ্যান্ড্রয়েডএক্স লাইব্রেরিতে বিদ্যমান সাপোর্ট লাইব্রেরির পাশাপাশি সর্বশেষ জেটপ্যাক কম্পোনেন্টগুলোও অন্তর্ভুক্ত রয়েছে।

আপনি সাপোর্ট লাইব্রেরিটি ব্যবহার করা চালিয়ে যেতে পারেন। ঐতিহাসিক আর্টিফ্যাক্টগুলো (যেগুলোর ভার্সন ২৭ বা তার আগের এবং যা android.support.* হিসেবে প্যাকেজ করা) গুগল ম্যাভেনে উপলব্ধ থাকবে। তবে, সমস্ত নতুন লাইব্রেরি ডেভেলপমেন্ট AndroidX লাইব্রেরিতে করা হবে।

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

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

এই ডকুমেন্টটি আপনাকে সাপোর্ট লাইব্রেরি প্যাকেজ ডাউনলোড করতে এবং আপনার ডেভেলপমেন্ট এনভায়রনমেন্টে লাইব্রেরিগুলো যুক্ত করার পদ্ধতি সম্পর্কে নির্দেশনা দেবে।

সহায়ক লাইব্রেরিগুলো এখন গুগলের ম্যাভেন রিপোজিটরির মাধ্যমে পাওয়া যাচ্ছে। আমরা এখন আর এসডিকে ম্যানেজারের মাধ্যমে লাইব্রেরি ডাউনলোড করা সমর্থন করি না এবং এই কার্যকারিতাটি শীঘ্রই সরিয়ে ফেলা হবে।

সহায়ক লাইব্রেরি নির্বাচন করা

আপনার অ্যাপ্লিকেশনে একটি সাপোর্ট লাইব্রেরি যোগ করার আগে, আপনি কোন বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে চান এবং সর্বনিম্ন কোন অ্যান্ড্রয়েড সংস্করণগুলি সমর্থন করতে চান তা স্থির করুন। বিভিন্ন লাইব্রেরি দ্বারা প্রদত্ত বৈশিষ্ট্যগুলি সম্পর্কে আরও তথ্যের জন্য, সাপোর্ট লাইব্রেরি বৈশিষ্ট্য (Support Library Features) দেখুন।

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

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

আপনার অ্যাপ্লিকেশন প্রকল্পে একটি সাপোর্ট লাইব্রেরি যোগ করতে:

  1. আপনার প্রোজেক্টের settings.gradle ফাইলে গুগলের Maven রিপোজিটরি অন্তর্ভুক্ত করুন।
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
    
            // If you're using a version of Gradle lower than 4.1, you must
            // instead use:
            //
            // maven {
            //     url 'https://maven.google.com'
            // }
        }
    }
  2. যেসব মডিউলে আপনি একটি সাপোর্ট লাইব্রেরি ব্যবহার করতে চান, সেগুলোর build.gradle ফাইলের dependencies ব্লকে লাইব্রেরিটি যোগ করুন। উদাহরণস্বরূপ, v4 core-utils লাইব্রেরিটি যোগ করতে, নিম্নলিখিতটি যোগ করুন:
    dependencies {
        ...
        implementation "com.android.support:support-core-utils:28.0.0"
    }

সতর্কতা: ডাইনামিক ডিপেন্ডেন্সি (যেমন, palette-v7:23.0.+ ) ব্যবহার করলে অপ্রত্যাশিত ভার্সন আপডেট এবং রিগ্রেশন ইনকম্প্যাটিবিলিটি দেখা দিতে পারে। আমরা আপনাকে লাইব্রেরির ভার্সন স্পষ্টভাবে উল্লেখ করার পরামর্শ দিচ্ছি (যেমন, palette-v7:28.0.0 )।

সাপোর্ট লাইব্রেরি এপিআই ব্যবহার করে

সাপোর্ট লাইব্রেরি ক্লাস, যা বিদ্যমান ফ্রেমওয়ার্ক এপিআই-এর জন্য সমর্থন প্রদান করে, সেগুলোর নাম সাধারণত ফ্রেমওয়ার্ক ক্লাসের নামের মতোই হয়, কিন্তু সেগুলো android.support ক্লাস প্যাকেজে অবস্থিত থাকে, অথবা সেগুলোর শেষে *Compat সাফিক্স থাকে।

সতর্কতা: সাপোর্ট লাইব্রেরি থেকে ক্লাস ব্যবহার করার সময়, নিশ্চিত হয়ে নিন যে আপনি সঠিক প্যাকেজ থেকে ক্লাসটি ইম্পোর্ট করছেন। উদাহরণস্বরূপ, ActionBar ক্লাসটি প্রয়োগ করার সময়:

  • সাপোর্ট লাইব্রেরি ব্যবহার করার সময় android.support.v7.app.ActionBar
  • শুধুমাত্র এপিআই লেভেল ১১ বা তার উচ্চতর সংস্করণের জন্য ডেভেলপ করার সময় android.app.ActionBar ব্যবহার করা হয়।

দ্রষ্টব্য: আপনার অ্যাপ্লিকেশন প্রজেক্টে সাপোর্ট লাইব্রেরি অন্তর্ভুক্ত করার পর, আমরা দৃঢ়ভাবে সুপারিশ করছি যে রিলিজের জন্য আপনি আপনার অ্যাপটিকে সঙ্কুচিত (shrink), অবফাসকেট (obfuscate) এবং অপ্টিমাইজ (optimize) করুন । অবফাসকেশনের মাধ্যমে আপনার সোর্স কোড সুরক্ষিত করার পাশাপাশি, সঙ্কুচিত করার ফলে আপনার অ্যাপ্লিকেশনে অন্তর্ভুক্ত যেকোনো লাইব্রেরি থেকে অব্যবহৃত ক্লাসগুলো অপসারিত হয়, যা আপনার অ্যাপ্লিকেশনের ডাউনলোড সাইজ যথাসম্ভব ছোট রাখে।

সাপোর্ট লাইব্রেরির কিছু বৈশিষ্ট্য ব্যবহারের জন্য আরও নির্দেশিকা অ্যান্ড্রয়েড ডেভেলপার প্রশিক্ষণ ক্লাস , গাইড এবং স্যাম্পলগুলিতে দেওয়া আছে। সাপোর্ট লাইব্রেরির প্রতিটি ক্লাস ও মেথড সম্পর্কে আরও তথ্যের জন্য, এপিআই রেফারেন্সে থাকা android.support প্যাকেজগুলি দেখুন।

প্রকাশ্য ঘোষণা পরিবর্তন

আপনি যদি সাপোর্ট লাইব্রেরির সাহায্যে আপনার বিদ্যমান অ্যাপ্লিকেশনটির ব্যাকওয়ার্ড কম্প্যাটিবিলিটি অ্যান্ড্রয়েড এপিআই-এর পূর্ববর্তী কোনো সংস্করণে উন্নীত করতে চান, তাহলে আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্ট আপডেট করতে ভুলবেন না। বিশেষত, ম্যানিফেস্টের <uses-sdk> ট্যাগের android:minSdkVersion এলিমেন্টটিকে নতুন, নিম্নতর ভার্সন নম্বরে আপডেট করতে হবে, যেমনটি নিচে দেখানো হয়েছে:

  <uses-sdk
      android:minSdkVersion="14"
      android:targetSdkVersion="23" />

ম্যানিফেস্ট সেটিং গুগল প্লে-কে জানিয়ে দেয় যে আপনার অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড ৪.০ (এপিআই লেভেল ১৪) এবং এর চেয়ে উন্নত সংস্করণের ডিভাইসগুলোতে ইনস্টল করা যাবে।

আপনি যদি গ্রেডল বিল্ড ফাইল ব্যবহার করেন, তাহলে বিল্ড ফাইলের minSdkVersion সেটিংটি ম্যানিফেস্ট সেটিংগুলোকে ওভাররাইড করে।

plugins {
  id 'com.android.application'
}

android {
    ...

    defaultConfig {
        minSdkVersion 16
        ...
    }
    ...
}

এক্ষেত্রে, বিল্ড ফাইল সেটিংটি গুগল প্লে-কে জানিয়ে দেয় যে আপনার অ্যাপ্লিকেশনের ডিফল্ট বিল্ড ভ্যারিয়েন্টটি অ্যান্ড্রয়েড ৪.১ (এপিআই লেভেল ১৬) এবং তার চেয়ে উচ্চতর সংস্করণের ডিভাইসগুলোতে ইনস্টল করা যাবে। বিল্ড ভ্যারিয়েন্ট সম্পর্কে আরও তথ্যের জন্য, বিল্ড সিস্টেম ওভারভিউ দেখুন।

দ্রষ্টব্য: আপনি যদি একাধিক সাপোর্ট লাইব্রেরি অন্তর্ভুক্ত করেন, তাহলে সর্বনিম্ন SDK সংস্করণটি অবশ্যই উল্লেখিত লাইব্রেরিগুলোর যেকোনো একটির জন্য প্রয়োজনীয় সর্বোচ্চ সংস্করণ হতে হবে। উদাহরণস্বরূপ, যদি আপনার অ্যাপে v14 প্রেফারেন্স সাপোর্ট লাইব্রেরি এবং v17 লিনব্যাক লাইব্রেরি উভয়ই অন্তর্ভুক্ত থাকে, তাহলে আপনার সর্বনিম্ন SDK সংস্করণ অবশ্যই 17 বা তার বেশি হতে হবে।