AndroidX: vad är det, viktiga bibliotek och migrering

Författare: IT Sectr Publicerad: 2026-05-01 Lästid: 8 min

AndroidX är en uppsättning Jetpack-bibliotek från Google som ersatte det föråldrade Support Library. Enligt Google Developer Documentation, 2024 tillhandahåller AndroidX bakåtkompatibla komponenter för alla versioner av Android och är standarden för modern Android-utveckling. AndroidX-bibliotek inkluderar verktyg för UI, navigering, arbete med data, kamera och bakgrundsuppgifter.

Huvudpunkter

  • AndroidX — efterföljaren till Support Library, lanserat 2018 som en del av Jetpack
  • AndroidX-bibliotek är oberoende av API-version och fungerar på enheter med Android 4.0+
  • Migrering från Support Library utförs automatiskt via Android Studio
  • Huvudmoduler: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Semantisk versionshantering gör det möjligt att uppdatera bibliotek oberoende av varandra

Vad är AndroidX

AndroidX är ett bibliotek med öppen källkod som ingår i Android Jetpack. Google släppte AndroidX 2018 som ersättning för Support Library, som sedan 2011 levererade bakåtkompatibla komponenter för gamla versioner av Android.

Innan AndroidX dök upp hade varje komponent i Support Library sin egen version kopplad till targetSdkVersion. Utvecklare var tvungna att samtidigt ansluta flera versioner av samma bibliotek, vilket ledde till beroendekonflikter och ökad APK-filstorlek.

AndroidX löste detta problem med semantisk versionshantering (SemVer). Nu är varje bibliotek en separat Gradle-artefakt med en version i formatet MAJOR.MINOR.PATCH. En utvecklare kan uppdatera Room från 2.4.0 till 2.6.0 utan att röra Activity, Fragment eller andra moduler.

Historien om AndroidX

Den första stabila utgåvan AndroidX 1.0.0 skedde i december 2018 tillsammans med Android 9 Pie. Google meddelade att Support Library går över till underhållsläge och att alla nya komponenter — Navigation, WorkManager, Compose — endast kommer att släppas inom AndroidX. Den sista versionen av Support Library — 28.0.0 — släpptes 2019.

Enligt Google I/O 2019 var den främsta anledningen till övergången behovet av att påskynda utgivningen av uppdateringar. I den gamla modellen väntade ett bibliotek på ett annat på grund av den enhetliga paketversionen. AndroidX eliminerade denna blockering och Jetpack började få större och mindre utgåvor var 2-3:e månad.

Skillnad mellan AndroidX och Support Library

Den största skillnaden är namnrymden. Support Library använde paketet android.support.*, medan AndroidX bytte till androidx.*. Denna förändring gjorde det möjligt att dela upp bibliotek i funktionella moduler. Till exempel hette Fragment från Support Library android.support.v4.app.Fragment, i AndroidX — androidx.fragment.app.Fragment.

Den andra viktiga skillnaden är arkitekturen. AndroidX levereras tillsammans med Jetpack — en uppsättning rekommendationer för applikationsarkitektur. Jetpack inkluderar ViewModel, LiveData, Room, Navigation och WorkManager, som utformades som ett enhetligt ekosystem, inte som spridda verktyg.

Bakåtkompatibilitet har också förbättrats. Medan Support Library stödde Android 2.3+, garanterar AndroidX funktion på enheter med Android 4.0 (API 14) och högre — detta täcker över 99% av aktiva enheter enligt Google Play Console 2024.

Sammansättning av AndroidX-bibliotek

AndroidX omfattar över 100 bibliotek indelade i grupper. Varje grupp ansvarar för ett specifikt område: UI, data, navigering, bakgrundsuppgifter, multimedia och testning. Nedan följer en översikt över nyckelmodulerna.

Core och grundläggande bibliotek

androidx.core:core — grundbiblioteket som innehåller bakåtkompatibla versioner av system-API:er: NotificationCompat, ActivityCompat, ContextCompat. Modulen core-ktx tillhandahåller Kotlin-tillägg för att arbeta med filer, SharedPreferences och vyelement.

Biblioteket androidx.activity:activity introducerade Activity Result API (registerForActivityResult), som ersatte den föråldrade startActivityForResult. Modulen fragment:fragment hanterar fragmentens livscykel och stöder FragmentManager för transaktioner och bakåtstack.

androidx.lifecycle — grunden för Jetpack-arkitekturen. LifecycleOwner och LifecycleObserver gör det möjligt för komponenter att reagera på förändringar i livscykeln för Activity eller Fragment. ViewModel bevarar data vid skärmrotation och LiveData meddelar UI om dataändringar.

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

androidx.recyclerview:recyclerview — en kraftfull komponent för att visa listor och rutnät. RecyclerView stöder LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration och animationer via ItemAnimator. Biblioteket ListAdapter med AsyncListDiffer förenklar uppdatering av listor med automatisk diff-beräkning.

androidx.navigation:navigation — biblioteket för navigering mellan skärmar. Navigation Component arbetar med NavHostFragment och NavController, stöder Safe Args för att skicka typade parametrar och Deep Links för externa länkar. NavGraph beskriver alla rutter i en XML-fil.

androidx.compose.ui — det deklarativa UI-ramverket Jetpack Compose, byggt på Kotlin. Till skillnad från View-systemet ritar Compose endast om ändrade element genom recomposition. Material Design 3-komponenter (Button, TextField, Scaffold) finns i modulen material3.

BibliotekArtefaktSyfte
Fragmentandroidx.fragmentHantering av fragment och transaktioner
RecyclerViewandroidx.recyclerviewListor och rutnät med optimering
Navigationandroidx.navigationNavigering mellan skärmar
Compose UIandroidx.compose.uiDeklarativ UI på Kotlin

Bibliotek för datahantering

androidx.room:room — ORM för lokal datalagring. Room genererar DAO-klasser från annoterade SQLite-frågor, kontrollerar SQL-syntax vid kompilering och stöder RxJava och Kotlin Flow. Version 2.6 innehåller stöd för KSP för snabbare kodgenerering.

androidx.work:workmanager — bibliotek för bakgrundsuppgifter med garanterad exekvering. WorkManager stöder periodiska uppgifter, arbetskedjor (beginWith, then) och startkriterier (Constraints: nätverk, laddning, minne). Även om appen är stängd levererar WorkManager uppgiften efter omstart av enheten.

androidx.datastore:datastore — modern ersättning för SharedPreferences. DataStore använder Kotlin Coroutines och Flow, fungerar synkront och asynkront och eliminerar blockering av UI-tråden. Preferences DataStore lagrar enkla nyckel-värdepar och Proto DataStore — typade objekt via Protocol Buffers.

Hur man migrerar till AndroidX

Automatisk migrering är den av Google rekommenderade metoden för att övergå från Support Library till AndroidX. Android Studio från version 3.2 innehåller det inbyggda verktyget Refactor Migrate to AndroidX, som ersätter namnrymder och uppdaterar beroenden i build.gradle.

Före migreringen måste du uppdatera compileSdk-versionen till 28 eller högre. Se också till att alla tredjepartsbibliotek stöder AndroidX. Om ett beroende ännu inte har migrerats kan du använda flaggan android.enableJetifier=true i gradle.properties — den skriver automatiskt om bytekoden för tredjepartsbibliotek.

Automatisk migrering i Android Studio

I Android Studio väljer du Refactor Migrate to AndroidX från menyn. IDE skannar hela projektet, hittar alla importer från paketet android.support.* och ersätter dem med androidx.*. Även beroenden i app/build.gradle uppdateras — Support Library-artefakter ersätts med motsvarande AndroidX-versioner.

Efter migreringen kan Gradle Sync visa fel om vissa beroenden inte hittades. Kontrollera listan över använda bibliotek i dokumentationen för Google Maven — alla AndroidX-artefakter är publicerade på google(). Om biblioteket inte är tillgängligt, lägg till mavenCentral() i repositories.

groovy
android {
    compileSdk 34
}

dependencies {
    // Support Library (föråldrat)
    // 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'
}

Manuell migrering

Om projektet är för stort eller innehåller anpassade vyer från Support Library kan automatisk ersättning vara ofullständig. Ersätt manuellt alla strängar i koden: ändra importer, attribut i XML (app/src/main/res) och referenser i manifestet. För Support Library-attribut ändras prefixet android: till app: (t.ex. app:cardCornerRadius istället för android:cardCornerRadius).

Efter manuell migrering kontrollera R-referenser. Support Library exporterade resurser via android.support.v7.appcompat.R, AndroidX via androidx.appcompat.R. Kör en sökning i projektet och ersätt alla omnämnanden av gamla R-sökvägar. Projektbygget ska genomföras utan fel och avskrivningsvarningar.

Fördelar med att använda AndroidX

Den första fördelen med AndroidX är modularitet. Du ansluter bara de bibliotek du faktiskt använder. Om appen bara behöver RecyclerView och Navigation finns det ingen anledning att dra in hela Support Library med alla vykomponenter. Detta minskar APK-storleken och snabbar upp projektbygget.

Den andra fördelen — regelbundna uppdateringar. Jetpack släpper stabila versioner var 1-3:e månad. Room 2.6.0, som släpptes 2024, lade till stöd för KSP och Kotlin 2.0. Navigation 2.8.0 introducerade typsäkra rutter baserade på Kotlinx Serialization. Utvecklare får nya funktioner utan att vänta på nästa Android-version.

Den tredje fördelen — integration med Kotlin. Alla AndroidX-bibliotek har -ktx-moduler med tilläggsfunktioner. viewLifecycleOwner.lifecycleScope startar korutiner i fragmentets kontext, collectLatest behandlar Flow, och SharedFlow och StateFlow är helt kompatibla med Lifecycle-aware-komponenter. Detta gör koden mer koncis och säker.

Bakåtkompatibilitet är den viktigaste fördelen med AndroidX jämfört med nya plattforms-API:er. Du kan använda AppCompatDelegate.setDefaultNightMode för mörkt tema på Android 4.0+, NotificationCompat.setBubble för bubblor på Android 5.0+ och LocationRequestCompat för fused location på Android 4.0+. Enhetstäckningen når 99% utan att höja den lägsta SDK-versionen.

Den fjärde fördelen — testning. AndroidX innehåller biblioteket androidx.test för att skriva instrumentella och enhetstester. FragmentScenario och ActivityScenario gör det möjligt att testa UI-komponenter i isolering och TestNavHostController — kontrollera navigering utan att starta en verklig enhet. MockK och Robolectric kompletterar ekosystemet.

Vanliga frågor

Vad skiljer AndroidX från Support Library?

AndroidX använder namnrymden androidx.* istället för android.support.*, har oberoende versionshantering (SemVer), inkluderar Jetpack-bibliotek och stöder Kotlin-tillägg -ktx. Support Library frystes vid version 28.0.0 2019.

Hur ansluter jag AndroidX i ett nytt projekt?

I Android Studio aktiverar du flaggan Use AndroidX i steget för att skapa projektet. För ett befintligt projekt lägger du till android.useAndroidX=true och android.enableJetifier=true i gradle.properties. Ersätt sedan beroenden i build.gradle med artefakter från gruppen androidx.

Är migrering till AndroidX obligatorisk?

Google Play kräver att alla appar och uppdateringar använder AndroidX. Supportet för Support Library har upphört och det får inga säkerhetsuppdateringar. Om din app ännu inte har migrerats kan detta leda till avslag av uppdateringen i Google Play Console.

Vad är Jetpack i Android?

Jetpack är en uppsättning bibliotek, verktyg och rekommendationer från Google för att utveckla Android-appar. AndroidX är grunden för Jetpack. Jetpack inkluderar Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) och Behavior (WorkManager, Navigation, CameraX).

Kan AndroidX användas med Jetpack Compose?

Ja, Jetpack Compose är själv en del av AndroidX (androidx.compose.ui). Biblioteken ViewModel, Navigation, Room och WorkManager är fullt kompatibla med Compose. Funktionerna collectAsState() och collectAsStateWithLifecycle() säkerställer integration av Flow med Compose-funktioner.

Sammanfattning

  • AndroidX — modern uppsättning Jetpack-bibliotek, efterföljare till Support Library med semantisk versionshantering
  • Över 100 moduler täcker UI, data, navigering, bakgrundsuppgifter, multimedia och testning
  • Automatisk migrering i Android Studio ersätter importer och beroenden med några klick
  • Kotlin-tillägg -ktx minskar standardkod och integreras med korutiner och Flow
  • Bakåtkompatibilitet med Android 4.0+ täcker 99% av aktiva enheter
  • Jetpack kombinerar AndroidX med arkitekturrekommendationer — ViewModel, Room, Navigation, WorkManager
  • Använd AndroidX i alla nya projekt — det är industristandard sedan 2019

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också