AndroidX: এটি কী, মূল লাইব্রেরি এবং মাইগ্রেশন

লেখক: IT Sectr প্রকাশিত: 2026-05-01 পড়ার সময়: 8 মিনিট

AndroidX হল Google-এর Jetpack লাইব্রেরির একটি সেট যা পুরানো Support Library-কে প্রতিস্থাপন করেছে। Google Developer Documentation, 2024 অনুসারে, AndroidX সব Android সংস্করণের জন্য পশ্চাৎ-সামঞ্জস্যপূর্ণ উপাদান সরবরাহ করে এবং আধুনিক Android ডেভেলপমেন্টের মান। AndroidX লাইব্রেরিতে UI, নেভিগেশন, ডেটা হ্যান্ডলিং, ক্যামেরা এবং ব্যাকগ্রাউন্ড টাস্কের জন্য টুল অন্তর্ভুক্ত রয়েছে।

মূল বিষয়

  • AndroidX হল Support Library-এর উত্তরসূরি, যা 2018 সালে Jetpack-এর অংশ হিসেবে প্রকাশিত হয়
  • AndroidX লাইব্রেরিগুলি API সংস্করণ থেকে স্বাধীন এবং Android 4.0+ ডিভাইসে কাজ করে
  • Support Library থেকে মাইগ্রেশন Android Studio-এর মাধ্যমে স্বয়ংক্রিয়ভাবে করা হয়
  • মূল মডিউল: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • সিম্যান্টিক ভার্সনিং লাইব্রেরিগুলিকে একে অপরের থেকে স্বাধীনভাবে আপডেট করতে দেয়

AndroidX কী

AndroidX একটি ওপেন-সোর্স লাইব্রেরি যা Android Jetpack-এর অংশ। Google 2018 সালে Support Library-এর প্রতিস্থাপন হিসেবে AndroidX প্রকাশ করে, যা 2011 সাল থেকে পুরানো Android সংস্করণের জন্য পশ্চাৎ-সামঞ্জস্যপূর্ণ উপাদান সরবরাহ করছিল।

AndroidX-এর আগে, প্রতিটি Support Library উপাদানের নিজস্ব সংস্করণ targetSdkVersion-এর সাথে আবদ্ধ ছিল। ডেভেলপারদের একই লাইব্রেরির একাধিক সংস্করণ একসাথে অন্তর্ভুক্ত করতে হত, যার ফলে ডিপেন্ডেন্সি দ্বন্দ্ব এবং APK আকার বৃদ্ধি পেত।

AndroidX সিম্যান্টিক ভার্সনিং (SemVer)-এর মাধ্যমে এই সমস্যার সমাধান করেছে। এখন প্রতিটি লাইব্রেরি MAJOR.MINOR.PATCH ফরম্যাটে সংস্করণ সহ একটি পৃথক Gradle আর্টিফ্যাক্ট। ডেভেলপাররা Activity, Fragment বা অন্যান্য মডিউল স্পর্শ না করে Room 2.4.0 থেকে 2.6.0-এ আপডেট করতে পারেন।

AndroidX-এর ইতিহাস

AndroidX 1.0.0-এর প্রথম স্থিতিশীল রিলিজ ডিসেম্বর 2018-এ Android 9 Pie-এর সাথে আসে। Google ঘোষণা করে যে Support Library রক্ষণাবেক্ষণ মোডে প্রবেশ করছে এবং সমস্ত নতুন উপাদান — Navigation, WorkManager, Compose — শুধুমাত্র AndroidX-এর অংশ হিসেবে প্রকাশিত হবে। Support Library-এর শেষ সংস্করণ — 28.0.0 — 2019-এ প্রকাশিত হয়।

Google I/O 2019 অনুসারে, রূপান্তরের মূল কারণ ছিল আপডেট রিলিজ ত্বরান্বিত করার প্রয়োজনীয়তা। পুরানো মডেলে, একটি লাইব্রেরিকে একক প্যাকেজ সংস্করণের কারণে অন্যটির জন্য অপেক্ষা করতে হত। AndroidX এই বাধা দূর করেছে, এবং Jetpack প্রতি 2–3 মাসে প্রধান এবং গৌণ রিলিজ পেতে শুরু করে।

AndroidX এবং Support Library-এর মধ্যে পার্থক্য

প্রধান পার্থক্য হল নেমস্পেস। Support Library android.support.* প্যাকেজ ব্যবহার করত, যখন AndroidX androidx.-এ স্থানান্তরিত হয়েছে। এই পরিবর্তন লাইব্রেরিগুলিকে কার্যকরী মডিউলে বিভক্ত করার অনুমতি দিয়েছে। উদাহরণস্বরূপ, Support Library-এ Fragment-কে android.support.v4.app.Fragment বলা হত, যখন AndroidX-এ এটি androidx.fragment.app.Fragment।

দ্বিতীয় গুরুত্বপূর্ণ পার্থক্য হল আর্কিটেকচার। AndroidX Jetpack-এর সাথে আসে — অ্যাপ আর্কিটেকচার সুপারিশের একটি সেট। Jetpack-এ ViewModel, LiveData, Room, Navigation এবং WorkManager অন্তর্ভুক্ত, যা বিক্ষিপ্ত ইউটিলিটির পরিবর্তে একটি একীভূত ইকোসিস্টেম হিসেবে ডিজাইন করা হয়েছে।

পশ্চাৎ সামঞ্জস্যতাও উন্নত হয়েছে। Support Library Android 2.3+ সমর্থন করলেও, AndroidX Android 4.0 (API 14) এবং তার উপরের ডিভাইসে পরিচালনার নিশ্চয়তা দেয় — যা Google Play Console 2024 অনুসারে 99% এর বেশি সক্রিয় ডিভাইস কভার করে।

AndroidX লাইব্রেরির গঠন

AndroidX-এ বিভাগ অনুসারে গ্রুপ করা 100টিরও বেশি লাইব্রেরি অন্তর্ভুক্ত। প্রতিটি গ্রুপ একটি নির্দিষ্ট ক্ষেত্র কভার করে: UI, ডেটা, নেভিগেশন, ব্যাকগ্রাউন্ড টাস্ক, মাল্টিমিডিয়া এবং টেস্টিং। নীচে মূল মডিউলগুলির একটি ওভারভিউ দেওয়া হল।

কোর এবং বেস লাইব্রেরি

androidx.core:core হল বেস লাইব্রেরি যাতে সিস্টেম API-এর পশ্চাৎ-সামঞ্জস্যপূর্ণ সংস্করণ রয়েছে: NotificationCompat, ActivityCompat, ContextCompat। core-ktx মডিউল ফাইল, SharedPreferences এবং ভিউ উপাদানের সাথে কাজ করার জন্য Kotlin এক্সটেনশন সরবরাহ করে।

androidx.activity:activity লাইব্রেরি Activity Result API (registerForActivityResult) চালু করেছে, যা পুরানো startActivityForResult-কে প্রতিস্থাপন করেছে। fragment:fragment মডিউল ফ্রাগমেন্টের জীবনচক্র পরিচালনা করে এবং লেনদেন ও ব্যাক স্ট্যাকের জন্য FragmentManager সমর্থন করে।

androidx.lifecycle হল Jetpack আর্কিটেকচারের ভিত্তি। LifecycleOwner এবং LifecycleObserver উপাদানগুলিকে Activity বা Fragment-এর জীবনচক্র পরিবর্তনে প্রতিক্রিয়া জানাতে দেয়। ViewModel স্ক্রিন রোটেশনের সময় ডেটা সংরক্ষণ করে, যখন LiveData UI-কে ডেটা পরিবর্তন সম্পর্কে জানায়।

kotlin
class MainViewModel : ViewModel() {
    private val _users = MutableLiveData<List<User>>()
    val users: LiveData<List<User>> = _users

    fun loadUsers() {
        viewModelScope.launch {
            val result = repository.getUsers()
            _users.value = result
        }
    }
}

UI লাইব্রেরি

androidx.recyclerview:recyclerview তালিকা এবং গ্রিড প্রদর্শনের জন্য একটি শক্তিশালী উপাদান। RecyclerView LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration এবং ItemAnimator-এর মাধ্যমে অ্যানিমেশন সমর্থন করে। AsyncListDiffer-সহ ListAdapter লাইব্রেরি স্বয়ংক্রিয় ডিফ গণনার সাথে তালিকা আপডেট সহজ করে।

androidx.navigation:navigation স্ক্রিনের মধ্যে নেভিগেট করার জন্য একটি লাইব্রেরি। নেভিগেশন কম্পোনেন্ট NavHostFragment এবং NavController-এর সাথে কাজ করে, টাইপড প্যারামিটার পাস করার জন্য Safe Args এবং বাহ্যিক লিংকের জন্য Deep Links সমর্থন করে। NavGraph XML ফাইলে সমস্ত রুট বর্ণনা করে।

androidx.compose.ui হল Kotlin-এ নির্মিত একটি ডিক্লারেটিভ UI ফ্রেমওয়ার্ক, Jetpack Compose। View সিস্টেমের বিপরীতে, Compose পুনঃসংযোজনের মাধ্যমে শুধুমাত্র পরিবর্তিত উপাদানগুলি পুনরায় আঁকে। Material Design 3 উপাদান (Button, TextField, Scaffold) material3 মডিউলে উপলব্ধ।

লাইব্রেরিআর্টিফ্যাক্টউদ্দেশ্য
Fragmentandroidx.fragmentফ্রাগমেন্ট ব্যবস্থাপনা এবং লেনদেন
RecyclerViewandroidx.recyclerviewঅপ্টিমাইজড তালিকা এবং গ্রিড
Navigationandroidx.navigationস্ক্রিন নেভিগেশন
Compose UIandroidx.compose.uiKotlin-এ ডিক্লারেটিভ UI

ডেটা লাইব্রেরি

androidx.room:room স্থানীয় ডেটা স্টোরেজের জন্য একটি ORM। Room অ্যানোটেটেড SQLite কোয়েরি থেকে DAO ক্লাস জেনারেট করে, কম্পাইল টাইমে SQL সিনট্যাক্স বৈধ করে এবং RxJava ও Kotlin Flow সমর্থন করে। সংস্করণ 2.6-এ দ্রুত কোড জেনারেশনের জন্য KSP সমর্থন অন্তর্ভুক্ত।

androidx.work:workmanager গ্যারান্টিযুক্ত সম্পাদন সহ ব্যাকগ্রাউন্ড টাস্কের জন্য একটি লাইব্রেরি। WorkManager পর্যায়ক্রমিক কাজ, কাজের চেইন (beginWith, then) এবং লঞ্চ মানদণ্ড (Constraints: নেটওয়ার্ক, চার্জিং, স্টোরেজ) সমর্থন করে। এমনকি অ্যাপ বন্ধ থাকলেও, WorkManager ডিভাইস রিবুটের পরে কাজ সরবরাহ করে।

androidx.datastore:datastore হল SharedPreferences-এর আধুনিক প্রতিস্থাপন। DataStore Kotlin Coroutines এবং Flow ব্যবহার করে, সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে, UI থ্রেড ব্লকিং প্রতিরোধ করে। Preferences DataStore সরল কী-ভ্যালু জোড়া সংরক্ষণ করে, যখন Proto DataStore Protocol Buffers-এর মাধ্যমে টাইপকৃত অবজেক্ট পরিচালনা করে।

কীভাবে AndroidX-এ মাইগ্রেট করবেন

স্বয়ংক্রিয় মাইগ্রেশন Support Library থেকে AndroidX-এ রূপান্তরের Google-এর সুপারিশকৃত উপায়। Android Studio সংস্করণ 3.2 থেকে বিল্ট-ইন Refactor Migrate to AndroidX টুল অন্তর্ভুক্ত করে, যা নেমস্পেস পরিবর্তন করে এবং build.gradle-এ ডিপেন্ডেন্সি আপডেট করে।

মাইগ্রেশনের আগে, আপনাকে compileSdk সংস্করণ 28 বা তার উপরে আপডেট করতে হবে। এছাড়াও নিশ্চিত করুন যে সমস্ত থার্ড-পার্টি লাইব্রেরি AndroidX সমর্থন করে। যদি কোনো ডিপেন্ডেন্সি এখনও মাইগ্রেট না হয়, তাহলে gradle.properties-এ android.enableJetifier=true ফ্ল্যাগ ব্যবহার করুন — এটি স্বয়ংক্রিয়ভাবে থার্ড-পার্টি লাইব্রেরির বাইটকোড পুনরায় লেখে।

Android Studio-তে স্বয়ংক্রিয় মাইগ্রেশন

Android Studio-তে, মেনু থেকে Refactor Migrate to AndroidX নির্বাচন করুন। IDE পুরো প্রজেক্ট স্ক্যান করবে, android.support.* প্যাকেজ থেকে সমস্ত ইম্পোর্ট খুঁজে বের করবে এবং সেগুলিকে androidx.* দিয়ে প্রতিস্থাপন করবে। app/build.gradle-এ ডিপেন্ডেন্সিও আপডেট হবে — Support Library আর্টিফ্যাক্টগুলি সংশ্লিষ্ট AndroidX সংস্করণ দিয়ে প্রতিস্থাপিত হবে।

মাইগ্রেশনের পরে, Gradle Sync কিছু ডিপেন্ডেন্সি না পাওয়া গেলে ত্রুটি দেখাতে পারে। Google Maven ডকুমেন্টেশনে ব্যবহৃত লাইব্রেরির তালিকা পরীক্ষা করুন — সমস্ত AndroidX আর্টিফ্যাক্ট google()-এ প্রকাশিত। কোনো লাইব্রেরি উপলব্ধ না হলে, repositories-এ mavenCentral() যোগ করুন।

groovy
android {
    compileSdk 34
}

dependencies {
    // সাপোর্ট লাইব্রেরি (অপ্রচলিত)
    // implementation 'com.android.support:appcompat-v7:28.0.0'
    
    // AndroidX
    implementation 'androidx.core:core-ktx:1.13.1'
    implementation 'androidx.appcompat:appcompat:1.7.0'
    implementation 'androidx.activity:activity-ktx:1.9.3'
    implementation 'androidx.fragment:fragment-ktx:1.8.5'
    implementation 'androidx.recyclerview:recyclerview:1.3.2'
    implementation 'androidx.room:room-runtime:2.6.1'
    ksp 'androidx.room:room-compiler:2.6.1'
}

ম্যানুয়াল মাইগ্রেশন

যদি প্রজেক্ট খুব বড় হয় বা Support Library থেকে কাস্টম View থাকে, তাহলে স্বয়ংক্রিয় প্রতিস্থাপন অসম্পূর্ণ হতে পারে। কোডের সমস্ত স্ট্রিং ম্যানুয়ালি প্রতিস্থাপন করুন: ইম্পোর্ট, XML অ্যাট্রিবিউট (app/src/main/res) এবং ম্যানিফেস্ট রেফারেন্স পরিবর্তন করুন। Support Library অ্যাট্রিবিউটের জন্য, android: উপসর্গ app:-এ পরিবর্তিত হয় (যেমন, android:cardCornerRadius-এর পরিবর্তে app:cardCornerRadius)।

ম্যানুয়াল মাইগ্রেশনের পরে, R-রেফারেন্স পরীক্ষা করুন। Support Library android.support.v7.appcompat.R-এর মাধ্যমে রিসোর্স রপ্তানি করত, যখন AndroidX androidx.appcompat.R ব্যবহার করে। প্রজেক্টে অনুসন্ধান করুন এবং পুরানো R পাথের সমস্ত রেফারেন্স প্রতিস্থাপন করুন। প্রজেক্ট বিল্ড ত্রুটি বা ডিপ্রিকেশন সতর্কতা ছাড়াই সম্পন্ন হওয়া উচিত।

AndroidX ব্যবহারের সুবিধা

AndroidX-এর প্রথম সুবিধা হল মডুলারিটি। আপনি শুধুমাত্র সেই লাইব্রেরিগুলি অন্তর্ভুক্ত করেন যা আপনি আসলে ব্যবহার করেন। যদি আপনার অ্যাপের শুধুমাত্র RecyclerView এবং Navigation প্রয়োজন হয়, তাহলে সব View উপাদান সহ সম্পূর্ণ Support Library টেনে আনার প্রয়োজন নেই। এটি APK আকার হ্রাস করে এবং বিল্ড সময় দ্রুত করে।

দ্বিতীয় সুবিধা হল নিয়মিত আপডেট। Jetpack প্রতি 1–3 মাসে স্থিতিশীল সংস্করণ প্রকাশ করে। Room 2.6.0, যা 2024 সালে প্রকাশিত হয়েছে, KSP সমর্থন এবং Kotlin 2.0 সামঞ্জস্য যোগ করেছে। Navigation 2.8.0 Kotlinx Serialization-এর উপর ভিত্তি করে টাইপ-সেফ রুট চালু করেছে। ডেভেলপাররা পরবর্তী Android সংস্করণের জন্য অপেক্ষা না করেই নতুন বৈশিষ্ট্য পান।

তৃতীয় সুবিধা হল Kotlin একীকরণ। সমস্ত AndroidX লাইব্রেরিতে এক্সটেনশন ফাংশন সহ -ktx মডিউল রয়েছে। viewLifecycleOwner.lifecycleScope ফ্রাগমেন্ট প্রসঙ্গে করুটিন চালু করে, collectLatest Flow প্রক্রিয়া করে, এবং SharedFlow ও StateFlow লাইফসাইকেল-অওয়্যার উপাদানের সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ। এটি কোডকে আরও সংক্ষিপ্ত এবং নিরাপদ করে।

পশ্চাৎ সামঞ্জস্যতা নতুন প্ল্যাটফর্ম API-এর উপরে AndroidX-এর একটি মূল সুবিধা। আপনি Android 4.0+-এ ডার্ক থিমের জন্য AppCompatDelegate.setDefaultNightMode, Android 5.0+-এ বাবলের জন্য NotificationCompat.setBubble এবং Android 4.0+-এ ফিউজড লোকেশনের জন্য LocationRequestCompat ব্যবহার করতে পারেন। ন্যূনতম SDK সংস্করণ না বাড়িয়ে ডিভাইস কভারেজ 99% এ পৌঁছে।

চতুর্থ সুবিধা হল টেস্টিং। AndroidX-এ ইন্সট্রুমেন্টেড এবং ইউনিট টেস্ট লেখার জন্য androidx.test লাইব্রেরি অন্তর্ভুক্ত। FragmentScenario এবং ActivityScenario UI উপাদানগুলিকে বিচ্ছিন্নভাবে পরীক্ষা করতে দেয়, যখন TestNavHostController বাস্তব ডিভাইস চালানো ছাড়াই নেভিগেশন যাচাই সক্ষম করে। MockK এবং Robolectric ইকোসিস্টেম সম্পূর্ণ করে।

সচরাচর জিজ্ঞাসা

AndroidX কীভাবে Support Library থেকে আলাদা?

AndroidX android.support.*-এর পরিবর্তে androidx.* নেমস্পেস ব্যবহার করে, স্বাধীন ভার্সনিং (SemVer) রয়েছে, Jetpack লাইব্রেরি অন্তর্ভুক্ত করে এবং Kotlin -ktx এক্সটেনশন সমর্থন করে। Support Library 2019 সালে সংস্করণ 28.0.0-এ হিমায়িত করা হয়েছিল।

নতুন প্রজেক্টে কীভাবে AndroidX যুক্ত করবেন?

Android Studio-তে, প্রজেক্ট তৈরি ধাপে Use AndroidX ফ্ল্যাগ সক্রিয় করুন। বিদ্যমান প্রজেক্টের জন্য, gradle.properties-এ android.useAndroidX=true এবং android.enableJetifier=true যোগ করুন। তারপর build.gradle-এ ডিপেন্ডেন্সিগুলিকে androidx গ্রুপের আর্টিফ্যাক্ট দিয়ে প্রতিস্থাপন করুন।

AndroidX-এ মাইগ্রেট করা কি বাধ্যতামূলক?

Google Play-এর জন্য প্রয়োজন যে সমস্ত অ্যাপ এবং আপডেট AndroidX ব্যবহার করবে। Support Library-এর রক্ষণাবেক্ষণ বন্ধ করা হয়েছে এবং এটি আর নিরাপত্তা প্যাচ পায় না। যদি আপনার অ্যাপ এখনও মাইগ্রেট না করে থাকে, তাহলে এটি Google Play Console-এ আপডেট প্রত্যাখ্যানের কারণ হতে পারে।

Android-এ Jetpack কী?

Jetpack Android অ্যাপ ডেভেলপমেন্টের জন্য Google-এর লাইব্রেরি, টুল এবং নির্দেশিকার একটি সেট। AndroidX হল Jetpack-এর ভিত্তি। Jetpack-এ Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) এবং Behavior (WorkManager, Navigation, CameraX) অন্তর্ভুক্ত।

AndroidX কি Jetpack Compose-এর সাথে ব্যবহার করা যাবে?

হ্যাঁ, Jetpack Compose নিজেই AndroidX-এর অংশ (androidx.compose.ui)। ViewModel, Navigation, Room এবং WorkManager লাইব্রেরিগুলি Compose-এর সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ। collectAsState() এবং collectAsStateWithLifecycle() ফাংশনগুলি Composable ফাংশনের সাথে Flow একীকরণ সরবরাহ করে।

সারসংক্ষেপ

  • AndroidX হল Jetpack লাইব্রেরির একটি আধুনিক সেট, সিম্যান্টিক ভার্সনিং সহ Support Library-এর উত্তরসূরি
  • 100টিরও বেশি মডিউল UI, ডেটা, নেভিগেশন, ব্যাকগ্রাউন্ড টাস্ক, মাল্টিমিডিয়া এবং টেস্টিং কভার করে
  • Android Studio-তে স্বয়ংক্রিয় মাইগ্রেশন কয়েক ক্লিকে ইম্পোর্ট এবং ডিপেন্ডেন্সি প্রতিস্থাপন করে
  • Kotlin এক্সটেনশন -ktx বয়লারপ্লেট কোড হ্রাস করে এবং করুটিন ও Flow-এর সাথে একীভূত হয়
  • Android 4.0+-এর সাথে পশ্চাৎ সামঞ্জস্যতা 99% সক্রিয় ডিভাইস কভার করে
  • Jetpack AndroidX-কে আর্কিটেকচারাল সুপারিশ — ViewModel, Room, Navigation, WorkManager-এর সাথে একত্রিত করে
  • সব নতুন প্রজেক্টে AndroidX ব্যবহার করুন — এটি 2019 সাল থেকে ইন্ডাস্ট্রি স্ট্যান্ডার্ড

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন