AndroidX: ce este, bibliotecile cheie și migrarea

Autor: IT Sectr Publicat: 2026-05-01 Timp de citire: 8 min

AndroidX este un set de biblioteci Jetpack de la Google care a înlocuit Support Library învechită. Conform Google Developer Documentation, 2024, AndroidX oferă componente compatibile invers pentru toate versiunile Android și este standardul dezvoltării moderne Android. Bibliotecile AndroidX includ instrumente pentru UI, navigare, lucru cu date, cameră și sarcini în fundal.

Principalele puncte

  • AndroidX — succesorul Support Library, lansat în 2018 ca parte a Jetpack
  • Bibliotecile AndroidX nu depind de versiunea API și funcționează pe dispozitive cu Android 4.0+
  • Migrarea de la Support Library se realizează automat prin Android Studio
  • Modulele principale: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Versionarea semantică permite actualizarea bibliotecilor independent una de alta

Ce este AndroidX

AndroidX este o bibliotecă open source care face parte din Android Jetpack. Google a lansat AndroidX în 2018 ca înlocuitor pentru Support Library, care din 2011 furniza componente compatibile invers pentru versiunile vechi de Android.

Înainte de apariția AndroidX, fiecare component Support Library avea propria versiune legată de targetSdkVersion. Dezvoltatorii trebuiau să conecteze simultan mai multe versiuni ale aceleiași biblioteci, ceea ce ducea la conflicte de dependențe și creșterea dimensiunii fișierului APK.

AndroidX a rezolvat această problemă prin versionarea semantică (SemVer). Acum fiecare bibliotecă este un artefact Gradle separat cu o versiune în formatul MAJOR.MINOR.PATCH. Dezvoltatorul poate actualiza Room de la 2.4.0 la 2.6.0 fără a atinge Activity, Fragment sau alte module.

Istoria apariției AndroidX

Prima lansare stabilă AndroidX 1.0.0 a avut loc în decembrie 2018 împreună cu Android 9 Pie. Google a anunțat că Support Library trece în modul de suport și că toate componentele noi — Navigation, WorkManager, Compose — vor fi lansate doar în cadrul AndroidX. Ultima versiune a Support Library — 28.0.0 — a fost lansată în 2019.

Conform Google I/O 2019, motivul principal al tranziției a fost necesitatea de a accelera lansarea actualizărilor. În modelul vechi, o bibliotecă o aștepta pe alta din cauza versiunii unice a pachetului. AndroidX a eliminat această blocare, iar Jetpack a început să primească versiuni majore și minore la fiecare 2–3 luni.

Diferența dintre AndroidX și Support Library

Diferența principală este spațiul de nume. Support Library folosea pachetul android.support.*, iar AndroidX a trecut la androidx.*. Această modificare a permis împărțirea bibliotecilor pe module funcționale. De exemplu, Fragment din Support Library se numea android.support.v4.app.Fragment, iar în AndroidX — androidx.fragment.app.Fragment.

A doua diferență importantă este arhitectura. AndroidX este livrat împreună cu Jetpack — un set de recomandări pentru arhitectura aplicațiilor. Jetpack include ViewModel, LiveData, Room, Navigation și WorkManager, care au fost concepute ca un ecosistem unitar, nu ca utilități disparate.

Compatibilitatea inversă s-a îmbunătățit și ea. Dacă Support Library suporta Android 2.3+, AndroidX garantează funcționarea pe dispozitive cu Android 4.0 (API 14) și mai sus — aceasta acoperă peste 99% dintre dispozitivele active conform Google Play Console 2024.

Compoziția bibliotecilor AndroidX

AndroidX include peste 100 de biblioteci împărțite pe grupuri. Fiecare grup răspunde de un domeniu specific: UI, date, navigare, sarcini în fundal, multimedia și testare. Mai jos este prezentată o prezentare generală a modulelor cheie.

Bibliotecile de bază și Core

androidx.core:core — biblioteca de bază care conține versiuni compatibile invers ale API-urilor de sistem: NotificationCompat, ActivityCompat, ContextCompat. Modulul core-ktx oferă extensii Kotlin pentru lucrul cu fișiere, SharedPreferences și elemente de vizualizare.

Biblioteca androidx.activity:activity a introdus Activity Result API (registerForActivityResult), care a înlocuit startActivityForResult învechit. Modulul fragment:fragment gestionează ciclul de viață al fragmentelor și suportă FragmentManager pentru tranzacții și stiva de revenire.

androidx.lifecycle — fundamentul arhitecturii Jetpack. LifecycleOwner și LifecycleObserver permit componentelor să reacționeze la modificările ciclului de viață al Activity sau Fragment. ViewModel păstrează datele la rotirea ecranului, iar LiveData notifică UI despre modificările datelor.

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
        }
    }
}

Bibliotecile UI

androidx.recyclerview:recyclerview — o componentă puternică pentru afișarea listelor și grilelor. RecyclerView suportă LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration și animații prin ItemAnimator. Biblioteca ListAdapter cu AsyncListDiffer simplifică actualizarea listei cu calculul automat al diferențelor.

androidx.navigation:navigation — biblioteca pentru navigarea între ecrane. Navigation Component lucrează cu NavHostFragment și NavController, suportă Safe Args pentru transmiterea parametrilor tipizați și Deep Links pentru linkuri externe. NavGraph descrie toate rutele într-un fișier XML.

androidx.compose.ui — framework-ul declarativ UI Jetpack Compose, construit pe Kotlin. Spre deosebire de sistemul View, Compose redesenează doar elementele modificate prin recomposition. Componentele Material Design 3 (Button, TextField, Scaffold) sunt disponibile în modulul material3.

BibliotecăArtefactDestinație
Fragmentandroidx.fragmentGestionarea fragmentelor și tranzacțiilor
RecyclerViewandroidx.recyclerviewListe și grile cu optimizare
Navigationandroidx.navigationNavigare între ecrane
Compose UIandroidx.compose.uiUI declarativ pe Kotlin

Bibliotecile pentru lucrul cu date

androidx.room:room — ORM pentru stocarea locală a datelor. Room generează clase DAO din interogări SQLite adnotate, verifică sintaxa SQL la compilare și suportă RxJava și Kotlin Flow. Versiunea 2.6 include suport pentru KSP pentru generarea mai rapidă a codului.

androidx.work:workmanager — biblioteca pentru sarcini în fundal cu execuție garantată. WorkManager suportă sarcini periodice, lanțuri de lucru (beginWith, then) și criterii de pornire (Constraints: rețea, încărcare, memorie). Chiar dacă aplicația este închisă, WorkManager livrează sarcina după repornirea dispozitivului.

androidx.datastore:datastore — înlocuitor modern pentru SharedPreferences. DataStore utilizează Kotlin Coroutines și Flow, funcționează sincron și asincron, eliminând blocarea firului UI. Preferences DataStore stochează perechi simple cheie-valoare, iar Proto DataStore — obiecte tipizate prin Protocol Buffers.

Cum să migrați la AndroidX

Migrarea automată este metoda recomandată de Google pentru trecerea de la Support Library la AndroidX. Android Studio începând cu versiunea 3.2 include instrumentul integrat Refactor Migrate to AndroidX, care înlocuiește spațiile de nume și actualizează dependențele în build.gradle.

Înainte de migrare, trebuie să actualizați versiunea compileSdk la 28 sau mai mare. De asemenea, asigurați-vă că toate bibliotecile terțe suportă AndroidX. Dacă o dependență nu a fost încă migrată, puteți utiliza flag-ul android.enableJetifier=true în gradle.properties — acesta rescrie automat bytecodul bibliotecilor terțe.

Migrarea automată în Android Studio

În Android Studio, selectați Refactor Migrate to AndroidX din meniu. IDE va scana întregul proiect, va găsi toate importurile din pachetul android.support.* și le va înlocui cu androidx.*. De asemenea, dependențele din app/build.gradle vor fi actualizate — artefactele Support Library vor fi înlocuite cu versiunile corespunzătoare AndroidX.

După migrare, Gradle Sync poate afișa erori dacă unele dependențe nu au fost găsite. Verificați lista bibliotecilor utilizate în documentația Google Maven — toate artefactele AndroidX sunt publicate pe google(). Dacă biblioteca nu este disponibilă, adăugați mavenCentral() în repositories.

groovy
android {
    compileSdk 34
}

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

Migrarea manuală

Dacă proiectul este prea mare sau conține View-uri personalizate din Support Library, înlocuirea automată poate fi incompletă. Înlocuiți manual toate șirurile din cod: modificați importurile, atributele în XML (app/src/main/res) și referințele în manifest. Pentru atributele Support Library, prefixul android: se schimbă în app: (de exemplu, app:cardCornerRadius în loc de android:cardCornerRadius).

După migrarea manuală, verificați referințele R. Support Library exporta resurse prin android.support.v7.appcompat.R, iar AndroidX — prin androidx.appcompat.R. Rulați o căutare în proiect și înlocuiți toate mențiunile vechilor căi R. Compilarea proiectului trebuie să se realizeze fără erori și avertismente de depreciere.

Avantajele utilizării AndroidX

Primul avantaj al AndroidX este modularitatea. Conectați doar bibliotecile pe care le utilizați efectiv. Dacă aplicația are nevoie doar de RecyclerView și Navigation, nu este necesar să includeți întreaga Support Library cu toate componentele View. Aceasta reduce dimensiunea APK și accelerează construirea proiectului.

Al doilea avantaj — actualizări regulate. Jetpack lansează versiuni stabile la fiecare 1–3 luni. Room 2.6.0, lansat în 2024, a adăugat suport pentru KSP și Kotlin 2.0. Navigation 2.8.0 a introdus rute sigure tipizate bazate pe serializarea Kotlinx Serialization. Dezvoltatorii primesc funcționalități noi fără a aștepta următoarea versiune Android.

Al treilea avantaj — integrarea cu Kotlin. Toate bibliotecile AndroidX au module -ktx cu funcții de extensie. viewLifecycleOwner.lifecycleScope lansează corutini în contextul fragmentului, collectLatest procesează Flow, iar SharedFlow și StateFlow sunt complet compatibile cu componentele Lifecycle-aware. Acest lucru face codul mai concis și mai sigur.

Compatibilitatea inversă este avantajul cheie al AndroidX față de noile API-uri ale platformei. Puteți utiliza AppCompatDelegate.setDefaultNightMode pentru tema întunecată pe Android 4.0+, NotificationCompat.setBubble pentru baloane pe Android 5.0+ și LocationRequestCompat pentru fused location pe Android 4.0+. Acoperirea dispozitivelor ajunge la 99% fără creșterea versiunii minime SDK.

Al patrulea avantaj — testarea. AndroidX include biblioteca androidx.test pentru scrierea testelor instrumentale și unitare. FragmentScenario și ActivityScenario permit testarea componentelor UI în izolare, iar TestNavHostController — verificarea navigării fără a porni un dispozitiv real. MockK și Robolectric completează ecosistemul.

Întrebări frecvente

Cu ce se diferențiază AndroidX de Support Library?

AndroidX utilizează spațiul de nume androidx.* în loc de android.support.*, are versionare independentă (SemVer), include bibliotecile Jetpack și suportă extensiile Kotlin -ktx. Support Library a fost înghețată la versiunea 28.0.0 în 2019.

Cum se conectează AndroidX într-un proiect nou?

În Android Studio activați flag-ul Use AndroidX la pasul de creare a proiectului. Pentru un proiect existent, adăugați android.useAndroidX=true și android.enableJetifier=true în gradle.properties. Apoi înlocuiți dependențele în build.gradle cu artefacte din grupul androidx.

Este obligatorie migrarea la AndroidX?

Google Play solicită ca toate aplicațiile și actualizările să utilizeze AndroidX. Suportul pentru Support Library a fost întrerupt și aceasta nu primește corecții de securitate. Dacă aplicația dvs. nu a fost încă migrată, aceasta poate duce la respingerea actualizării în Google Play Console.

Ce este Jetpack în Android?

Jetpack este un set de biblioteci, instrumente și recomandări de la Google pentru dezvoltarea aplicațiilor Android. AndroidX reprezintă fundamentul Jetpack. Jetpack include Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) și Behavior (WorkManager, Navigation, CameraX).

Se poate utiliza AndroidX cu Jetpack Compose?

Da, Jetpack Compose însuși face parte din AndroidX (androidx.compose.ui). Bibliotecile ViewModel, Navigation, Room și WorkManager sunt complet compatibile cu Compose. Funcțiile collectAsState() și collectAsStateWithLifecycle() asigură integrarea Flow cu funcțiile Compose.

Concluzii

  • AndroidX — setul modern de biblioteci Jetpack, succesorul Support Library cu versionare semantică
  • Peste 100 de module acoperă UI, date, navigare, sarcini în fundal, multimedia și testare
  • Migrarea automată în Android Studio înlocuiește importurile și dependențele cu câteva clicuri
  • Extensiile Kotlin -ktx reduc codul șablon și se integrează cu corutinile și Flow
  • Compatibilitatea inversă cu Android 4.0+ acoperă 99% din dispozitivele active
  • Jetpack combină AndroidX cu recomandări arhitecturale — ViewModel, Room, Navigation, WorkManager
  • Utilizați AndroidX în toate proiectele noi — este standardul industriei din 2019

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și