AndroidX: bu nədir, əsas kitabxanalar və miqrasiya

Müəllif: IT Sectr Dərc olunub: 2026-05-01 Oxuma vaxtı: 8 dəq

AndroidX Google-dan Jetpack kitabxanalar dəstidir və köhnəlmiş Support Library-ni əvəz etmişdir. Google Developer Documentation, 2024-ə görə, AndroidX Android-in bütün versiyaları üçün geriyə uyğun komponentlər təqdim edir və müasir Android inkişafının standartıdır. AndroidX kitabxanaları interfeys, naviqasiya, məlumatlarla iş, kamera və fon tapşırıqları üçün alətlər daxildir.

Əsas məqamlar

  • AndroidX — Jetpack-in bir hissəsi olaraq 2018-ci ildə buraxılmış Support Library-nin varisidir
  • AndroidX kitabxanaları API versiyasından asılı deyil və Android 4.0+ olan cihazlarda işləyir
  • Support Library-dən miqrasiya Android Studio vasitəsilə avtomatik həyata keçirilir
  • Əsas modullar: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Semantik versiyalama kitabxanaları bir-birindən asılı olmayaraq yeniləməyə imkan verir

AndroidX nədir

AndroidX Android Jetpack-in tərkib hissəsi olan açıq mənbəli kitabxanadır. Google AndroidX-i 2018-ci ildə 2011-ci ildən köhnə Android versiyaları üçün geriyə uyğun komponentlər təmin edən Support Library-nin əvəzi olaraq buraxdı.

AndroidX meydana gəlməzdən əvvəl hər bir Support Library komponentinin targetSdkVersion-a bağlı öz versiyası var idi. Tərtibatçılar eyni kitabxananın bir neçə versiyasını eyni anda qoşmalı olurdular ki, bu da asılılıq münaqişələrinə və APK faylının ölçüsünün artmasına səbəb olurdu.

AndroidX bu problemi semantik versiyalama (SemVer) vasitəsilə həll etdi. İndi hər bir kitabxana MAJOR.MINOR.PATCH formatında versiyası olan ayrıca Gradle artefaktıdır. Tərtibatçı Room-u 2.4.0-dan 2.6.0-a yeniləyə bilər, Activity, Fragment və ya digər modullara toxunmadan.

AndroidX-in yaranma tarixi

İlk stabil buraxılış AndroidX 1.0.0 2018-ci ilin dekabrında Android 9 Pie ilə birlikdə baş tutdu. Google Support Library-nin dəstək rejiminə keçdiyini və bütün yeni komponentlərin — Navigation, WorkManager, Compose — yalnız AndroidX tərkibində buraxılacağını elan etdi. Support Library-nin son versiyası — 28.0.0 — 2019-cu ildə çıxdı.

Google I/O 2019-a görə, keçidin əsas səbəbi yeniləmələrin buraxılışını sürətləndirmək ehtiyacı idi. Köhnə modeldə bir kitabxana paketin vahid versiyasına görə digərini gözləyirdi. AndroidX bu bloklanmanı aradan qaldırdı və Jetpack hər 2–3 aydan bir əsas və kiçik buraxılışlar almağa başladı.

AndroidX ilə Support Library arasındakı fərq

Əsas fərq ad məkanıdır. Support Library android.support.* paketindən istifadə edirdi, AndroidX isə androidx.*-ə keçdi. Bu dəyişiklik kitabxanaları funksional modullara bölməyə imkan verdi. Məsələn, Support Library-də Fragment android.support.v4.app.Fragment, AndroidX-də isə androidx.fragment.app.Fragment adlanırdı.

İkinci vacib fərq arxitekturadır. AndroidX Jetpack ilə birlikdə gəlir — tətbiq arxitekturası üzrə tövsiyələr dəsti. Jetpack ViewModel, LiveData, Room, Navigation və WorkManager-i əhatə edir ki, onlar da ayrı-ayrı alətlər deyil, vahid ekosistem kimi hazırlanmışdır.

Geri uyğunluq da yaxşılaşmışdır. Support Library Android 2.3+-ü dəstəkləyirdisə, AndroidX Android 4.0 (API 14) və daha yüksək olan cihazlarda işləməyə təminat verir — bu, Google Play Console 2024 məlumatlarına görə aktiv cihazların 99%-dən çoxunu əhatə edir.

AndroidX kitabxanalarının tərkibi

AndroidX qruplara bölünmüş 100-dən çox kitabxana daxildir. Hər bir qrup müəyyən sahəyə cavabdehdir: interfeys, məlumatlar, naviqasiya, fon tapşırıqları, multimedia və test. Aşağıda əsas modulların icmalı verilmişdir.

Core və əsas kitabxanalar

androidx.core:core — sistem API-lərinin geriyə uyğun versiyalarını ehtiva edən əsas kitabxana: NotificationCompat, ActivityCompat, ContextCompat. core-ktx modulu fayllar, SharedPreferences və görünüş elementləri ilə iş üçün Kotlin uzantıları təqdim edir.

androidx.activity:activity kitabxanası köhnəlmiş startActivityForResult-u əvəz edən Activity Result API (registerForActivityResult) təqdim etdi. fragment:fragment modulu fraqmentlərin həyat dövrünü idarə edir və əməliyyatlar və geri yığın üçün FragmentManager-i dəstəkləyir.

androidx.lifecycle — Jetpack arxitekturasının əsası. LifecycleOwner və LifecycleObserver komponentlərə Activity və ya Fragment-in həyat dövrü dəyişikliklərinə reaksiya verməyə imkan verir. ViewModel ekran fırlanması zamanı məlumatları qoruyur, LiveData isə UI-ə məlumat dəyişiklikləri barədə xəbərdarlıq edir.

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 kitabxanaları

androidx.recyclerview:recyclerview — siyahı və şəbəkələrin göstərilməsi üçün güclü komponent. RecyclerView LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration və ItemAnimator vasitəsilə animasiyaları dəstəkləyir. ListAdapter AsyncListDiffer ilə siyahının avtomatik diff hesablanması ilə yenilənməsini sadələşdirir.

androidx.navigation:navigation — ekranlar arasında naviqasiya üçün kitabxana. Navigation Component NavHostFragment və NavController ilə işləyir, parametrləşdirilmiş arqumentlərin ötürülməsi üçün Safe Args və xarici keçidlər üçün Deep Link-ləri dəstəkləyir. NavGraph bütün marşrutları XML faylında təsvir edir.

androidx.compose.ui — Kotlin üzərində qurulmuş deklarativ UI freymvorku Jetpack Compose. View sistemindən fərqli olaraq, Compose yalnız dəyişdirilmiş elementləri recomposition vasitəsilə yenidən çəkir. Material Design 3 komponentləri (Button, TextField, Scaffold) material3 modulunda mövcuddur.

KitabxanaArtefaktMəqsəd
Fragmentandroidx.fragmentFraqmentlərin və əməliyyatların idarə edilməsi
RecyclerViewandroidx.recyclerviewOptimallaşdırma ilə siyahı və şəbəkələr
Navigationandroidx.navigationEkranlar arasında naviqasiya
Compose UIandroidx.compose.uiKotlin-də deklarativ UI

Məlumatlarla iş üçün kitabxanalar

androidx.room:room — yerli məlumat saxlama üçün ORM. Room annotasiya edilmiş SQLite sorğularından DAO sinifləri yaradır, kompilyasiya mərhələsində SQL sintaksisini yoxlayır və RxJava və Kotlin Flow-u dəstəkləyir. 2.6 versiyası daha sürətli kod generasiyası üçün KSP dəstəyini ehtiva edir.

androidx.work:workmanager — zəmanətli icra ilə fon tapşırıqları üçün kitabxana. WorkManager dövri tapşırıqları, iş zəncirlərini (beginWith, then) və başlatma meyarlarını (Constraints: şəbəkə, doldurma, yaddaş) dəstəkləyir. Tətbiq bağlı olsa belə, WorkManager cihaz yenidən başladıldıqdan sonra tapşırığı çatdırır.

androidx.datastore:datastore — SharedPreferences-in müasir əvəzedicisi. DataStore Kotlin Coroutines və Flow-dan istifadə edir, sinxron və asinxron işləyir, UI axınının bloklanmasını aradan qaldırır. Preferences DataStore sadə açar-dəyər cütlərini, Proto DataStore isə Protocol Buffers vasitəsilə tipləşdirilmiş obyektləri saxlayır.

AndroidX-ə necə miqrasiya etməli

Avtomatik miqrasiya Google tərəfindən Support Library-dən AndroidX-ə keçid üçün tövsiyə olunan üsuldur. Android Studio 3.2 versiyasından etibarən ad məkanlarını dəyişdirən və build.gradle-də asılılıqları yeniləyən Refactor Migrate to AndroidX alətini daxildir.

Miqrasiyadan əvvəl compileSdk versiyasını 28 və ya daha yüksəklərə yeniləmək lazımdır. Həmçinin bütün üçüncü tərəf kitabxanalarının AndroidX-i dəstəklədiyinə əmin olun. Əgər hansısa asılılıq hələ miqrasiya edilməyibsə, gradle.properties-də android.enableJetifier=true bayrağından istifadə edə bilərsiniz — o, üçüncü tərəf kitabxanalarının baytkodunu avtomatik yenidən yazır.

Android Studio-da avtomatik miqrasiya

Android Studio-da menyudan Refactor Migrate to AndroidX seçin. IDE bütün layihəni skan edəcək, android.support.* paketindən bütün importları tapacaq və onları androidx.* ilə əvəz edəcək. Həmçinin app/build.gradle-də asılılıqlar yenilənəcək — Support Library artefaktları müvafiq AndroidX versiyaları ilə əvəz olunacaq.

Miqrasiyadan sonra Gradle Sync bəzi asılılıqlar tapılmadıqda xəta göstərə bilər. İstifadə olunan kitabxanaların siyahısını Google Maven sənədlərində yoxlayın — bütün AndroidX artefaktları google()-da dərc olunub. Kitabxana mövcud deyilsə, repositories-ə mavenCentral() əlavə edin.

groovy
android {
    compileSdk 34
}

dependencies {
    // Support Library (köhnəlmiş)
    // 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'
}

Əl ilə miqrasiya

Layihə çox böyükdürsə və ya Support Library-dən xüsusi View ehtiva edirsə, avtomatik dəyişdirmə tam olmaya bilər. Kodda bütün sətirləri əl ilə dəyişdirin: importları, XML-də atributları (app/src/main/res) və manifestdə istinadları dəyişin. Support Library atributları üçün android: prefiksi app: ilə əvəz olunur (məsələn, android:cardCornerRadius əvəzinə app:cardCornerRadius).

Əl ilə miqrasiyadan sonra R istinadlarını yoxlayın. Support Library resursları android.support.v7.appcompat.R vasitəsilə, AndroidX isə androidx.appcompat.R vasitəsilə ixrac edirdi. Layihədə axtarış aparın və köhnə R yollarının bütün qeydlərini dəyişdirin. Layihənin qurulması xəta və deprecation xəbərdarlıqları olmadan keçməlidir.

AndroidX istifadəsinin üstünlükləri

Birinci üstünlük AndroidX-in modulluğudur. Siz yalnız həqiqətən istifadə etdiyiniz kitabxanaları qoşursunuz. Tətbiqə yalnız RecyclerView və Navigation lazımdırsa, bütün View komponentləri ilə bütün Support Library-ni çəkməyə ehtiyac yoxdur. Bu, APK ölçüsünü azaldır və layihənin qurulmasını sürətləndirir.

İkinci üstünlük müntəzəm yeniləmələrdir. Jetpack hər 1–3 aydan bir stabil buraxılışlar edir. 2024-cü ildə buraxılmış Room 2.6.0 KSP və Kotlin 2.0 dəstəyini əlavə etdi. Navigation 2.8.0 Kotlinx Serialization-a əsaslanan təhlükəsiz tipli marşrutlar təqdim etdi. Tərtibatçılar növbəti Android versiyasını gözləmədən yeni imkanlar əldə edirlər.

Üçüncü üstünlük Kotlin ilə inteqrasiyadır. Bütün AndroidX kitabxanalarında uzantı funksiyaları olan -ktx modulları var. viewLifecycleOwner.lifecycleScope fraqment kontekstində korutinləri işə salır, collectLatest Flow-u emal edir, SharedFlow və StateFlow isə Lifecycle-aware komponentləri ilə tam uyğundur. Bu, kodu daha yığcam və təhlükəsiz edir.

Geri uyğunluq AndroidX-in yeni platforma API-ləri qarşısında əsas üstünlüyüdür. Siz Android 4.0+-da tünd mövzu üçün AppCompatDelegate.setDefaultNightMode, Android 5.0+-da baloncuklar üçün NotificationCompat.setBubble və Android 4.0+-da fused location üçün LocationRequestCompat istifadə edə bilərsiniz. Cihaz əhatəsi minimal SDK versiyasını artırmadan 99%-ə çatır.

Dördüncü üstünlük testdir. AndroidX instrumental və modul testləri yazmaq üçün androidx.test kitabxanasını daxildir. FragmentScenario və ActivityScenario UI komponentlərini izolyasiyada test etməyə, TestNavHostController isə real cihazı işə salmadan naviqasiyanı yoxlamağa imkan verir. MockK və Robolectric ekosistemi tamamlayır.

Tez-tez verilən suallar

AndroidX Support Library-dən nə ilə fərqlənir?

AndroidX android.support.* əvəzinə androidx.* ad məkanından istifadə edir, müstəqil versiyalamaya (SemVer) malikdir, Jetpack kitabxanalarını ehtiva edir və -ktx Kotlin uzantılarını dəstəkləyir. Support Library 2019-cu ildə 28.0.0 versiyasında dondurulmuşdur.

Yeni layihədə AndroidX-i necə qoşmaq olar?

Android Studio-da layihə yaratma mərhələsində Use AndroidX bayrağını aktivləşdirin. Mövcud layihə üçün gradle.properties-ə android.useAndroidX=true və android.enableJetifier=true əlavə edin. Sonra build.gradle-də asılılıqları androidx qrupundan artefaktlarla əvəz edin.

AndroidX-ə miqrasiya etmək məcburidirmi?

Google Play bütün tətbiqlərin və yeniləmələrin AndroidX istifadə etməsini tələb edir. Support Library dəstəyi dayandırılıb və təhlükəsizlik düzəlişləri almır. Tətbiqiniz hələ miqrasiya edilməyibsə, bu, Google Play Console-da yeniləmənin rədd edilməsinə səbəb ola bilər.

Android-də Jetpack nədir?

Jetpack Android tətbiqlərinin inkişafı üçün Google-dan kitabxanalar, alətlər və tövsiyələr dəstidir. AndroidX Jetpack-in əsasını təşkil edir. Jetpack-ə Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) və Behavior (WorkManager, Navigation, CameraX) daxildir.

AndroidX Jetpack Compose ilə istifadə oluna bilərmi?

Bəli, Jetpack Compose özü AndroidX-in bir hissəsidir (androidx.compose.ui). ViewModel, Navigation, Room və WorkManager kitabxanaları Compose ilə tam uyğundur. collectAsState() və collectAsStateWithLifecycle() funksiyaları Flow-un Compose funksiyaları ilə inteqrasiyasını təmin edir.

Nəticə

  • AndroidX — semantik versiyalama ilə Support Library-nin varisi olan müasir Jetpack kitabxanalar dəsti
  • 100-dən çox modul interfeys, məlumat, naviqasiya, fon tapşırıqları, multimedia və testi əhatə edir
  • Android Studio-da avtomatik miqrasiya bir neçə kliklə importları və asılılıqları əvəz edir
  • Kotlin uzantıları -ktx şablon kodu qısaldır və korutinlər və Flow ilə inteqrasiya edir
  • Android 4.0+ ilə geri uyğunluq aktiv cihazların 99%-ni əhatə edir
  • Jetpack AndroidX-i arxitektura tövsiyələri ilə birləşdirir — ViewModel, Room, Navigation, WorkManager
  • Bütün yeni layihələrdə AndroidX istifadə edin — bu, 2019-cu ildən sənaye standartıdır

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun