AndroidX: mi ez, kulcsfontosságú könyvtárak és migráció

Szerző: IT Sectr Megjelenés: 2026-05-01 Olvasási idő: 8 perc

AndroidX a Google Jetpack könyvtárainak készlete, amely felváltotta az elavult Support Library-t. A Google Developer Documentation, 2024 szerint az AndroidX visszafelé kompatibilis komponenseket biztosít az Android minden verziójához, és a modern Android-fejlesztés szabványa. Az AndroidX könyvtárak eszközöket tartalmaznak a UI-hoz, navigációhoz, adatkezeléshez, kamerához és háttérfeladatokhoz.

Főbb pontok

  • AndroidX — a Support Library utódja, 2018-ban jelent meg a Jetpack részeként
  • Az AndroidX könyvtárak nem függnek az API verziójától és Android 4.0+ eszközökön működnek
  • A Support Library-ből való migráció automatikusan történik az Android Studio-n keresztül
  • Fő modulok: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • A szemantikus verziózás lehetővé teszi a könyvtárak egymástól független frissítését

Mi az AndroidX

AndroidX egy nyílt forráskódú könyvtár, amely az Android Jetpack része. A Google 2018-ban adta ki az AndroidX-et a Support Library helyettesítéseként, amely 2011 óta szállított visszafelé kompatibilis komponenseket a régi Android verziókhoz.

Az AndroidX megjelenése előtt a Support Library minden komponensének saját verziója volt, a targetSdkVersion-hoz kötve. A fejlesztőknek egyszerre kellett csatlakoztatniuk ugyanazon könyvtár több verzióját, ami függőségi konfliktusokhoz és az APK fájl méretének növekedéséhez vezetett.

AndroidX megoldotta ezt a problémát a szemantikus verziózással (SemVer). Most minden könyvtár egy külön Gradle-összetevő, MAJOR.MINOR.PATCH formátumú verzióval. A fejlesztő frissítheti a Room-ot 2.4.0-ról 2.6.0-ra anélkül, hogy hozzányúlna az Activity-hez, Fragment-hez vagy más modulokhoz.

Az AndroidX megjelenésének története

Az első stabil kiadás, AndroidX 1.0.0, 2018 decemberében jelent meg az Android 9 Pie-val együtt. A Google bejelentette, hogy a Support Library karbantartási módba lép, és minden új komponens — Navigation, WorkManager, Compose — csak az AndroidX részeként jelenik meg. A Support Library utolsó verziója — 28.0.0 — 2019-ben jelent meg.

A Google I/O 2019 szerint az átállás fő oka a frissítések kiadásának felgyorsítása volt. A régi modellben az egyik könyvtár a másikra várt az egységes csomagverzió miatt. Az AndroidX megszüntette ezt a blokkolást, és a Jetpack 2-3 havonta kezdett fő- és alverziókat kapni.

Az AndroidX és a Support Library közötti különbség

A fő különbség a névtér. A Support Library az android.support.* csomagot használta, míg az AndroidX átváltott az androidx.*-ra. Ez a változtatás lehetővé tette a könyvtárak funkcionális modulokra bontását. Például a Fragment a Support Library-ben android.support.v4.app.Fragment volt, az AndroidX-ben pedig androidx.fragment.app.Fragment.

A második fontos különbség az architektúra. Az AndroidX a Jetpack-kel együtt kerül szállításra — egy alkalmazásarchitektúrára vonatkozó ajánláskészlettel. A Jetpack tartalmazza a ViewModel-t, LiveData-t, Room-ot, Navigation-t és WorkManager-t, amelyek egységes ökoszisztémaként lettek tervezve, nem pedig szétszórt segédprogramokként.

Visszafelé kompatibilitás is javult. Míg a Support Library Android 2.3+-t támogatott, az AndroidX garantálja a működést Android 4.0 (API 14) és újabb eszközökön — ez a Google Play Console 2024 szerint az aktív eszközök több mint 99%-át lefedi.

Az AndroidX könyvtárak összetétele

AndroidX több mint 100 könyvtárat tartalmaz, csoportokra osztva. Minden csoport egy adott területért felel: UI, adatok, navigáció, háttérfeladatok, multimédia és tesztelés. Alább a kulcsfontosságú modulok áttekintése található.

Core és alapkönyvtárak

androidx.core:core — az alapkönyvtár, amely a rendszer API-k visszafelé kompatibilis verzióit tartalmazza: NotificationCompat, ActivityCompat, ContextCompat. A core-ktx modul Kotlin-kiterjesztéseket biztosít fájlokkal, SharedPreferences-szel és nézetelemekkel való munkához.

Az androidx.activity:activity könyvtár bevezette az Activity Result API-t (registerForActivityResult), amely felváltotta az elavult startActivityForResult-ot. A fragment:fragment modul kezeli a fragmensek életciklusát és támogatja a FragmentManager-t tranzakciókhoz és visszalépési veremhez.

androidx.lifecycle — a Jetpack architektúra alapja. A LifecycleOwner és LifecycleObserver lehetővé teszi a komponensek számára, hogy reagáljanak az Activity vagy Fragment életciklus-változásaira. A ViewModel megőrzi az adatokat képernyőforgatáskor, a LiveData pedig értesíti a UI-t az adatváltozásokról.

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 könyvtárak

androidx.recyclerview:recyclerview — egy hatékony komponens listák és rácsok megjelenítéséhez. A RecyclerView támogatja a LayoutManager-t (LinearLayoutManager, GridLayoutManager), ItemDecoration-t és animációkat ItemAnimator-on keresztül. A ListAdapter könyvtár AsyncListDiffer-rel egyszerűsíti a lista frissítését automatikus diff számítással.

androidx.navigation:navigation — a navigáció könyvtára képernyők között. A Navigation Component a NavHostFragment-tel és NavController-rel működik, támogatja a Safe Args-ot tipizált paraméterek átadásához és a Deep Links-t külső hivatkozásokhoz. A NavGraph az összes útvonalat egy XML fájlban írja le.

androidx.compose.ui — a deklaratív UI keretrendszer, a Jetpack Compose, Kotlinra építve. A View rendszertől eltérően a Compose csak a megváltozott elemeket rajzolja újra recomposition segítségével. A Material Design 3 komponensek (Button, TextField, Scaffold) a material3 modulban érhetők el.

KönyvtárÖsszetevőRendeltetés
Fragmentandroidx.fragmentFragmensek és tranzakciók kezelése
RecyclerViewandroidx.recyclerviewListák és rácsok optimalizálással
Navigationandroidx.navigationNavigáció képernyők között
Compose UIandroidx.compose.uiDeklaratív UI Kotlinon

Adatkezelési könyvtárak

androidx.room:room — ORM helyi adattároláshoz. A Room DAO osztályokat generál annotált SQLite lekérdezésekből, ellenőrzi az SQL szintaxist fordítási szakaszban, és támogatja az RxJava-t és Kotlin Flow-t. A 2.6 verzió tartalmazza a KSP támogatását gyorsabb kódgeneráláshoz.

androidx.work:workmanager — könyvtár háttérfeladatokhoz garantált végrehajtással. A WorkManager támogatja az időszakos feladatokat, munkaláncokat (beginWith, then) és indítási kritériumokat (Constraints: hálózat, töltés, memória). Még ha az alkalmazás be is van zárva, a WorkManager kézbesíti a feladatot az eszköz újraindítása után.

androidx.datastore:datastore — a SharedPreferences modern helyettesítője. A DataStore Kotlin Coroutines-t és Flow-t használ, szinkronban és aszinkronban működik, kiküszöbölve a UI szál blokkolását. A Preferences DataStore egyszerű kulcs-érték párokat tárol, a Proto DataStore pedig tipizált objektumokat Protocol Buffers segítségével.

Hogyan migráljunk AndroidX-re

Automatikus migráció a Google által ajánlott módszer a Support Library-ről AndroidX-re való áttérésre. Az Android Studio 3.2 verziójától kezdve tartalmazza a beépített Refactor Migrate to AndroidX eszközt, amely lecseréli a névtereket és frissíti a függőségeket a build.gradle-ben.

A migráció előtt frissíteni kell a compileSdk verziót 28-ra vagy magasabbra. Győződjön meg arról is, hogy minden harmadik féltől származó könyvtár támogatja az AndroidX-et. Ha valamelyik függőség még nem migrált, használhatja az android.enableJetifier=true jelzőt a gradle.properties-ben — ez automatikusan átírja a harmadik fél könyvtárak bytecode-ját.

Automatikus migráció az Android Studio-ban

Az Android Studio-ban válassza a menüből a Refactor Migrate to AndroidX lehetőséget. Az IDE átvizsgálja a teljes projektet, megtalálja az összes importot az android.support.* csomagból, és lecseréli őket androidx.*-ra. A függőségek is frissülnek az app/build.gradle-ben — a Support Library összetevők lecserélődnek a megfelelő AndroidX verziókra.

A migráció után a Gradle Sync hibákat jelezhet, ha egyes függőségek nem találhatók. Ellenőrizze a használt könyvtárak listáját a Google Maven dokumentációjában — minden AndroidX összetevő a google()-on van közzétéve. Ha a könyvtár nem érhető el, adja hozzá a mavenCentral()-et a repositories-hoz.

groovy
android {
    compileSdk 34
}

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

Kézi migráció

Ha a projekt túl nagy, vagy egyedi View-kat tartalmaz a Support Library-ből, az automatikus csere hiányos lehet. Kézzel cserélje ki az összes karakterláncot a kódban: módosítsa az importokat, az attribútumokat XML-ben (app/src/main/res) és a hivatkozásokat a manifest-ben. A Support Library attribútumoknál az android: előtag app:-ra változik (pl. app:cardCornerRadius az android:cardCornerRadius helyett).

A kézi migráció után ellenőrizze az R hivatkozásokat. A Support Library az android.support.v7.appcompat.R-n keresztül exportált erőforrásokat, az AndroidX pedig az androidx.appcompat.R-n keresztül. Futtasson keresést a projektben, és cserélje ki a régi R útvonalak összes említését. A projekt build-jének hiba és elavulási figyelmeztetések nélkül kell lefutnia.

Az AndroidX használatának előnyei

Az AndroidX első előnye a modularitás. Csak azokat a könyvtárakat csatlakoztatja, amelyeket ténylegesen használ. Ha az alkalmazásnak csak RecyclerView-ra és Navigation-re van szüksége, nem kell az egész Support Library-t az összes View komponenssel együtt behúzni. Ez csökkenti az APK méretét és felgyorsítja a projekt build-jét.

A második előny — rendszeres frissítések. A Jetpack 1-3 havonta ad ki stabil verziókat. A 2024-ben kiadott Room 2.6.0 támogatást adott a KSP-hez és Kotlin 2.0-hoz. A Navigation 2.8.0 bevezette a típusbiztos útvonalakat Kotlinx Serialization alapján. A fejlesztők új képességeket kapnak anélkül, hogy meg kellene várniuk a következő Android verziót.

A harmadik előny — integráció a Kotlinnal. Az összes AndroidX könyvtár rendelkezik -ktx modulokkal kiterjesztő függvényekkel. A viewLifecycleOwner.lifecycleScope coroutine-okat indít a fragment kontextusában, a collectLatest feldolgozza a Flow-t, a SharedFlow és StateFlow pedig teljes mértékben kompatibilis a Lifecycle-aware komponensekkel. Ez tömörebbé és biztonságosabbá teszi a kódot.

Visszafelé kompatibilitás — az AndroidX kulcsfontosságú előnye az új platform API-kkal szemben. Használhatja az AppCompatDelegate.setDefaultNightMode-ot sötét témához Android 4.0+-n, NotificationCompat.setBubble-t buborékokhoz Android 5.0+-n és LocationRequestCompat-ot fused location-höz Android 4.0+-n. Az eszközlefedettség eléri a 99%-ot a minimális SDK verzió növelése nélkül.

A negyedik előny — tesztelés. Az AndroidX tartalmazza az androidx.test könyvtárat instrumentális és egységtesztek írásához. A FragmentScenario és ActivityScenario lehetővé teszi a UI komponensek elkülönített tesztelését, a TestNavHostController pedig a navigáció ellenőrzését valódi eszköz elindítása nélkül. A MockK és Robolectric kiegészíti az ökoszisztémát.

Gyakran ismételt kérdések

Miben különbözik az AndroidX a Support Library-től?

AndroidX az androidx.* névteret használja az android.support.* helyett, független verziózással (SemVer) rendelkezik, tartalmazza a Jetpack könyvtárakat és támogatja a -ktx Kotlin kiterjesztéseket. A Support Library a 28.0.0 verziónál lett befagyasztva 2019-ben.

Hogyan csatlakoztassuk az AndroidX-et egy új projektben?

Az Android Studio-ban kapcsolja be a Use AndroidX jelzőt a projekt létrehozásának lépésénél. Meglévő projekt esetén adja hozzá az android.useAndroidX=true és android.enableJetifier=true beállításokat a gradle.properties-hez. Ezután cserélje le a függőségeket a build.gradle-ben az androidx csoport összetevőire.

Kötelező az AndroidX-re migrálni?

A Google Play megköveteli, hogy minden alkalmazás és frissítés AndroidX-et használjon. A Support Library támogatása megszűnt, és nem kap biztonsági javításokat. Ha az alkalmazása még nem migrált, ez a frissítés elutasításához vezethet a Google Play Console-ban.

Mi az a Jetpack Androidban?

Jetpack a Google könyvtárainak, eszközeinek és ajánlásainak készlete Android alkalmazások fejlesztéséhez. Az AndroidX a Jetpack alapját képezi. A Jetpack tartalmazza az Architecture Components-t (Lifecycle, ViewModel, Room), UI-t (Compose, Fragment, RecyclerView) és Behavior-t (WorkManager, Navigation, CameraX).

Használható az AndroidX a Jetpack Compose-zal?

Igen, a Jetpack Compose maga is az AndroidX része (androidx.compose.ui). A ViewModel, Navigation, Room és WorkManager könyvtárak teljes mértékben kompatibilisek a Compose-zal. A collectAsState() és collectAsStateWithLifecycle() függvények biztosítják a Flow integrációját a Compose függvényekkel.

Összefoglalás

  • AndroidX — modern Jetpack könyvtárkészlet, a Support Library utódja szemantikus verziózással
  • Több mint 100 modul fedi le a UI-t, adatokat, navigációt, háttérfeladatokat, multimédiát és tesztelést
  • Automatikus migráció az Android Studio-ban néhány kattintással cseréli az importokat és függőségeket
  • A Kotlin kiterjesztések (-ktx) csökkentik a sablonkódot és integrálódnak a coroutine-okkal és Flow-val
  • Visszafelé kompatibilitás Android 4.0+ az aktív eszközök 99%-át fedi le
  • Jetpack egyesíti az AndroidX-et az architekturális ajánlásokkal — ViewModel, Room, Navigation, WorkManager
  • Használja az AndroidX-et minden új projektben — ez az iparági szabvány 2019 óta

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is