AndroidX: bu nima, asosiy kutubxonalar va migratsiya

Muallif: IT Sectr Nashr etilgan: 2026-05-01 O'qish vaqti: 8 daq

AndroidX bu Google tomonidan Jetpack kutubxonalar to'plami bo'lib, eskirgan Support Library o'rnini egalladi. Google Developer Documentation, 2024 ma'lumotlariga ko'ra, AndroidX Androidning barcha versiyalari uchun orqaga mos komponentlarni taqdim etadi va zamonaviy Android ishlab chiqish standartidir. AndroidX kutubxonalari UI, navigatsiya, ma'lumotlar bilan ishlash, kamera va fon vazifalari uchun vositalarni o'z ichiga oladi.

Asosiy fikrlar

  • AndroidX — Jetpack qismi sifatida 2018-yilda chiqarilgan Support Library vorisi
  • AndroidX kutubxonalari API versiyasiga bog'liq emas va Android 4.0+ qurilmalarda ishlaydi
  • Support Library-dan migratsiya Android Studio orqali avtomatik amalga oshiriladi
  • Asosiy modullar: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Semantik versiyalash kutubxonalarni bir-biridan mustaqil yangilash imkonini beradi

AndroidX nima

AndroidX bu Android Jetpack tarkibiga kiruvchi ochiq kodli kutubxona. Google AndroidX-ni 2018-yilda Support Library o'rniga chiqardi, u 2011-yildan beri eski Android versiyalari uchun orqaga mos komponentlarni yetkazib berardi.

AndroidX paydo bo'lishidan oldin har bir Support Library komponenti targetSdkVersion-ga bog'langan o'z versiyasiga ega edi. Ishlab chiqaruvchilar bir vaqtning o'zida bir kutubxonaning bir nechta versiyasini ulashlari kerak edi, bu esa bog'liqlik mojarolariga va APK fayl hajmining oshishiga olib keldi.

AndroidX bu muammoni semantik versiyalash (SemVer) orqali hal qildi. Endi har bir kutubxona MAJOR.MINOR.PATCH formatidagi versiyaga ega alohida Gradle artefaktidir. Ishlab chiqaruvchi Room-ni 2.4.0 dan 2.6.0 ga yangilashi mumkin, Activity, Fragment yoki boshqa modullarga tegmasdan.

AndroidX paydo bo'lish tarixi

Birinchi barqaror versiya AndroidX 1.0.0 2018-yil dekabrida Android 9 Pie bilan birga chiqdi. Google Support Library qo'llab-quvvatlash rejimiga o'tganini va barcha yangi komponentlar — Navigation, WorkManager, Compose — faqat AndroidX tarkibida chiqishini e'lon qildi. Support Library-ning so'nggi versiyasi — 28.0.0 — 2019-yilda chiqdi.

Google I/O 2019 ma'lumotlariga ko'ra, o'tishning asosiy sababi yangilanishlarni chiqarishni tezlashtirish zarurati edi. Eski modelda bir kutubxona paketning yagona versiyasi tufayli boshqa kutubxonani kutardi. AndroidX bu blokirovkani bartaraf etdi va Jetpack har 2–3 oyda asosiy va kichik versiyalarni ola boshladi.

AndroidX va Support Library o'rtasidagi farq

Asosiy farq nom maydoni. Support Library android.support.* paketidan foydalangan, AndroidX esa androidx.* ga o'tdi. Bu o'zgartirish kutubxonalarni funksional modullarga ajratish imkonini berdi. Masalan, Support Library-dagi Fragment android.support.v4.app.Fragment, AndroidX-da esa androidx.fragment.app.Fragment deb nomlangan.

Ikkinchi muhim farq arxitektura. AndroidX Jetpack bilan birga taqdim etiladi — ilova arxitekturasi bo'yicha tavsiyalar to'plami. Jetpack ViewModel, LiveData, Room, Navigation va WorkManager-ni o'z ichiga oladi, ular tarqoq vositalar emas, balki yagona ekotizim sifatida ishlab chiqilgan.

Orqaga moslik ham yaxshilandi. Support Library Android 2.3+ ni qo'llab-quvvatlagan bo'lsa, AndroidX Android 4.0 (API 14) va undan yuqori qurilmalarda ishlashni kafolatlaydi — bu Google Play Console 2024 ma'lumotlariga ko'ra faol qurilmalarning 99% dan ortig'ini qamrab oladi.

AndroidX kutubxonalari tarkibi

AndroidX guruhlarga bo'lingan 100 dan ortiq kutubxonani o'z ichiga oladi. Har bir guruh ma'lum bir soha uchun javobgardir: UI, ma'lumotlar, navigatsiya, fon vazifalari, multimedia va testlash. Quyida asosiy modullarning sharhi keltirilgan.

Core va asosiy kutubxonalar

androidx.core:core — tizim API-larining orqaga mos versiyalarini o'z ichiga olgan asosiy kutubxona: NotificationCompat, ActivityCompat, ContextCompat. core-ktx moduli fayllar, SharedPreferences va ko'rinish elementlari bilan ishlash uchun Kotlin kengaytmalarini taqdim etadi.

androidx.activity:activity kutubxonasi eskirgan startActivityForResult o'rnini bosgan Activity Result API (registerForActivityResult) ni joriy qildi. fragment:fragment moduli fragmentlarning hayot siklini boshqaradi va tranzaksiyalar va orqa stek uchun FragmentManager-ni qo'llab-quvvatlaydi.

androidx.lifecycle — Jetpack arxitekturasining asosi. LifecycleOwner va LifecycleObserver komponentlarga Activity yoki Fragment hayot sikli o'zgarishlariga reaksiya berish imkonini beradi. ViewModel ekran aylanishida ma'lumotlarni saqlaydi, LiveData esa UI-ni ma'lumot o'zgarishlari haqida xabardor qiladi.

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 kutubxonalari

androidx.recyclerview:recyclerview — ro'yxat va panjaralarni ko'rsatish uchun kuchli komponent. RecyclerView LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration va ItemAnimator orqali animatsiyalarni qo'llab-quvvatlaydi. ListAdapter AsyncListDiffer bilan ro'yxatni avtomatik farq hisoblash bilan yangilashni soddalashtiradi.

androidx.navigation:navigation — ekranlar o'rtasida navigatsiya uchun kutubxona. Navigation Component NavHostFragment va NavController bilan ishlaydi, tipik parametrlarni uzatish uchun Safe Args va tashqi havolalar uchun Deep Links-ni qo'llab-quvvatlaydi. NavGraph barcha marshrutlarni XML faylida tasvirlaydi.

androidx.compose.ui — Kotlin asosida qurilgan deklarativ UI freymvorki Jetpack Compose. View tizimidan farqli o'laroq, Compose faqat o'zgartirilgan elementlarni recomposition orqali qayta chizadi. Material Design 3 komponentlari (Button, TextField, Scaffold) material3 modulida mavjud.

KutubxonaArtefaktVazifa
Fragmentandroidx.fragmentFragmentlar va tranzaksiyalarni boshqarish
RecyclerViewandroidx.recyclerviewOptimallashtirish bilan ro'yxat va panjaralar
Navigationandroidx.navigationEkranlar o'rtasida navigatsiya
Compose UIandroidx.compose.uiKotlin asosida deklarativ UI

Ma'lumotlar bilan ishlash uchun kutubxonalar

androidx.room:room — mahalliy ma'lumot saqlash uchun ORM. Room izohli SQLite so'rovlaridan DAO sinflarini yaratadi, kompilyatsiya bosqichida SQL sintaksisini tekshiradi va RxJava va Kotlin Flow-ni qo'llab-quvvatlaydi. 2.6 versiyasi tezroq kod yaratish uchun KSP qo'llab-quvvatlashni o'z ichiga oladi.

androidx.work:workmanager — kafolatlangan bajarish bilan fon vazifalari uchun kutubxona. WorkManager davriy vazifalar, ish zanjirlari (beginWith, then) va ishga tushirish mezonlarini (Constraints: tarmoq, zaryadlash, xotira) qo'llab-quvvatlaydi. Ilova yopiq bo'lsa ham, WorkManager qurilma qayta ishga tushgandan so'ng vazifani yetkazib beradi.

androidx.datastore:datastore — SharedPreferences-ning zamonaviy o'rnini bosuvchi. DataStore Kotlin Coroutines va Flow-dan foydalanadi, sinxron va asinxron ishlaydi, UI oqimining bloklanishini bartaraf etadi. Preferences DataStore oddiy kalit-qiymat juftliklarini, Proto DataStore esa Protocol Buffers orqali tiplangan obyektlarni saqlaydi.

AndroidX-ga qanday migratsiya qilish

Avtomatik migratsiya Google tomonidan Support Library-dan AndroidX-ga o'tish uchun tavsiya etilgan usuldir. Android Studio 3.2 versiyasidan boshlab nom maydonlarini almashtiruvchi va build.gradle-da bog'liqliklarni yangilaydigan Refactor Migrate to AndroidX vositasini o'z ichiga oladi.

Migratsiyadan oldin compileSdk versiyasini 28 yoki undan yuqoriga yangilash kerak. Shuningdek, barcha uchinchi tomon kutubxonalari AndroidX-ni qo'llab-quvvatlashiga ishonch hosil qiling. Agar ba'zi bog'liqlik hali migratsiya qilinmagan bo'lsa, gradle.properties-da android.enableJetifier=true bayrog'idan foydalanishingiz mumkin — u uchinchi tomon kutubxonalarining baytkodini avtomatik qayta yozadi.

Android Studio-da avtomatik migratsiya

Android Studio-da menyudan Refactor Migrate to AndroidX ni tanlang. IDE butun loyihani skanerlaydi, android.support.* paketidan barcha importlarni topadi va ularni androidx.* bilan almashtiradi. Shuningdek app/build.gradle-dagi bog'liqliklar yangilanadi — Support Library artefaktlari tegishli AndroidX versiyalari bilan almashtiriladi.

Migratsiyadan so'ng Gradle Sync ba'zi bog'liqliklar topilmagan bo'lsa, xatolarni ko'rsatishi mumkin. Ishlatilgan kutubxonalar ro'yxatini Google Maven hujjatlarida tekshiring — barcha AndroidX artefaktlari google() da nashr etilgan. Agar kutubxona mavjud bo'lmasa, repositories-ga mavenCentral() qo'shing.

groovy
android {
    compileSdk 34
}

dependencies {
    // Support Library (eskirgan)
    // 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'
}

Qo'lda migratsiya

Agar loyiha juda katta bo'lsa yoki Support Library-dan maxsus View larni o'z ichiga olsa, avtomatik almashtirish to'liq bo'lmasligi mumkin. Kodda barcha satrlarni qo'lda almashtiring: importlarni, XML-dagi atributlarni (app/src/main/res) va manifestdagi havolalarni o'zgartiring. Support Library atributlari uchun android: prefiksi app: ga o'zgaradi (masalan, android:cardCornerRadius o'rniga app:cardCornerRadius).

Qo'lda migratsiyadan so'ng R havolalarini tekshiring. Support Library resurslarni android.support.v7.appcompat.R orqali, AndroidX esa androidx.appcompat.R orqali eksport qilgan. Loyiha bo'ylab qidiruvni ishga tushiring va eski R yo'llarining barcha eslatmalarini almashtiring. Loyiha qurilishi xato va eskirish haqida ogohlantirishlarsiz o'tishi kerak.

AndroidX dan foydalanish afzalliklari

Birinchi afzallik AndroidX ning modulliligidir. Siz faqat haqiqatda ishlatadigan kutubxonalarni ulaysiz. Agar ilovaga faqat RecyclerView va Navigation kerak bo'lsa, barcha View komponentlari bilan butun Support Library ni tortib olishning hojati yo'q. Bu APK hajmini kamaytiradi va loyiha qurilishini tezlashtiradi.

Ikkinchi afzallik — muntazam yangilanishlar. Jetpack har 1–3 oyda barqaror versiyalarni chiqaradi. 2024-yilda chiqarilgan Room 2.6.0 KSP va Kotlin 2.0 qo'llab-quvvatlashni qo'shdi. Navigation 2.8.0 Kotlinx Serialization asosida xavfsiz tipli marshrutlarni joriy qildi. Ishlab chiqaruvchilar keyingi Android versiyasini kutmasdan yangi imkoniyatlarni olishadi.

Uchinchi afzallik — Kotlin bilan integratsiya. Barcha AndroidX kutubxonalari kengaytma funksiyalari bilan -ktx modullariga ega. viewLifecycleOwner.lifecycleScope fragment kontekstida koroutinlarni ishga tushiradi, collectLatest Flow-ni qayta ishlaydi, SharedFlow va StateFlow esa Lifecycle-aware komponentlari bilan to'liq mos keladi. Bu kodni ixchamroq va xavfsizroq qiladi.

Orqaga moslik — AndroidX ning yangi platforma API-lari oldidagi asosiy afzalligi. Siz Android 4.0+ da qorong'i mavzu uchun AppCompatDelegate.setDefaultNightMode, Android 5.0+ da pufakchalar uchun NotificationCompat.setBubble va Android 4.0+ da fused location uchun LocationRequestCompat dan foydalanishingiz mumkin. Qurilma qamrovi minimal SDK versiyasini oshirmasdan 99% ga etadi.

To'rtinchi afzallik — testlash. AndroidX instrumental va modul testlarini yozish uchun androidx.test kutubxonasini o'z ichiga oladi. FragmentScenario va ActivityScenario UI komponentlarini izolyatsiyada testlashga, TestNavHostController esa real qurilmani ishga tushirmasdan navigatsiyani tekshirishga imkon beradi. MockK va Robolectric ekotizimni to'ldiradi.

Tez-tez so'raladigan savollar

AndroidX Support Library-dan nima bilan farq qiladi?

AndroidX android.support.* o'rniga androidx.* nom maydonidan foydalanadi, mustaqil versiyalash (SemVer) ga ega, Jetpack kutubxonalarini o'z ichiga oladi va -ktx Kotlin kengaytmalarini qo'llab-quvvatlaydi. Support Library 2019-yilda 28.0.0 versiyasida to'xtatilgan.

Yangi loyihada AndroidX-ni qanday ulash mumkin?

Android Studio da loyiha yaratish bosqichida Use AndroidX bayrog'ini yoqing. Mavjud loyiha uchun gradle.properties ga android.useAndroidX=true va android.enableJetifier=true qo'shing. Keyin build.gradle dagi bog'liqliklarni androidx guruhidagi artefaktlar bilan almashtiring.

AndroidX-ga migratsiya qilish majburiymi?

Google Play barcha ilovalar va yangilanishlar AndroidX dan foydalanishini talab qiladi. Support Library qo'llab-quvvatlashi to'xtatilgan va u xavfsizlik tuzatishlarini olmaydi. Agar ilovangiz hali migratsiya qilinmagan bo'lsa, bu Google Play Console da yangilanishning rad etilishiga olib kelishi mumkin.

Android-da Jetpack nima?

Jetpack bu Android ilovalarini ishlab chiqish uchun Google tomonidan kutubxonalar, vositalar va tavsiyalar to'plami. AndroidX Jetpack ning asosidir. Jetpack tarkibiga Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) va Behavior (WorkManager, Navigation, CameraX) kiradi.

AndroidX ni Jetpack Compose bilan ishlatish mumkinmi?

Ha, Jetpack Compose ning o'zi AndroidX ning bir qismidir (androidx.compose.ui). ViewModel, Navigation, Room va WorkManager kutubxonalari Compose bilan to'liq mos keladi. collectAsState() va collectAsStateWithLifecycle() funksiyalari Flow ning Compose funksiyalari bilan integratsiyasini ta'minlaydi.

Xulosa

  • AndroidX — semantik versiyalash bilan Support Library vorisi bo'lgan zamonaviy Jetpack kutubxonalar to'plami
  • 100 dan ortiq modul UI, ma'lumotlar, navigatsiya, fon vazifalari, multimedia va testlashni qamrab oladi
  • Android Studio-da avtomatik migratsiya bir necha bosish bilan import va bog'liqliklarni almashtiradi
  • Kotlin kengaytmalari -ktx shablon kodni qisqartiradi va koroutinlar va Flow bilan integratsiyalanadi
  • Android 4.0+ bilan orqaga moslik faol qurilmalarning 99% ini qamrab oladi
  • Jetpack AndroidX ni arxitektura tavsiyalari bilan birlashtiradi — ViewModel, Room, Navigation, WorkManager
  • Barcha yangi loyihalarda AndroidX dan foydalaning — bu 2019-yildan beri sanoat standartidir

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing