AndroidX ist eine Sammlung von Jetpack-Bibliotheken von Google, die die veraltete Support Library ersetzt hat. Laut der Google Developer Documentation, 2024 bietet AndroidX abwärtskompatible Komponenten für alle Android-Versionen und ist der Standard der modernen Android-Entwicklung. AndroidX-Bibliotheken umfassen Werkzeuge für UI, Navigation, Datenverarbeitung, Kamera und Hintergrundaufgaben.
Wichtige Punkte
AndroidX ist eine Open-Source-Bibliothek, die Teil von Android Jetpack ist. Google veröffentlichte AndroidX 2018 als Ersatz für die Support Library, die seit 2011 abwärtskompatible Komponenten für ältere Android-Versionen bereitstellte.
Vor AndroidX hatte jede Support Library-Komponente ihre eigene Version, die an die targetSdkVersion gebunden war. Entwickler mussten mehrere Versionen derselben Bibliothek gleichzeitig einbinden, was zu Abhängigkeitskonflikten und einer Vergrößerung der APK-Größe führte.
AndroidX löste dieses Problem durch semantische Versionierung (SemVer). Jetzt ist jede Bibliothek ein separates Gradle-Artefakt mit einer Version im Format MAJOR.MINOR.PATCH. Entwickler können Room von 2.4.0 auf 2.6.0 aktualisieren, ohne Activity, Fragment oder andere Module zu berühren.
Die erste stabile Version von AndroidX 1.0.0 erschien im Dezember 2018 zusammen mit Android 9 Pie. Google kündigte an, dass die Support Library in den Wartungsmodus übergeht und alle neuen Komponenten — Navigation, WorkManager, Compose — nur noch als Teil von AndroidX veröffentlicht werden. Die letzte Support Library-Version — 28.0.0 — wurde 2019 veröffentlicht.
Laut Google I/O 2019 war der Hauptgrund für den Übergang die Notwendigkeit, Update-Veröffentlichungen zu beschleunigen. Im alten Modell musste eine Bibliothek aufgrund einer einheitlichen Paketversion auf eine andere warten. AndroidX beseitigte diesen Engpass, und Jetpack erhielt alle 2–3 Monate Major- und Minor-Releases.
Der Hauptunterschied ist der Namensraum. Die Support Library verwendete das Paket android.support.*, während AndroidX zu androidx.* wechselte. Diese Änderung ermöglichte die Aufteilung der Bibliotheken in funktionale Module. Zum Beispiel hieß Fragment in der Support Library android.support.v4.app.Fragment, während es in AndroidX androidx.fragment.app.Fragment ist.
Der zweite wichtige Unterschied ist die Architektur. AndroidX wird mit Jetpack ausgeliefert — einer Sammlung von Architekturempfehlungen für Apps. Jetpack umfasst ViewModel, LiveData, Room, Navigation und WorkManager, die als einheitliches Ökosystem und nicht als verstreute Hilfsprogramme konzipiert wurden.
Die Abwärtskompatibilität wurde ebenfalls verbessert. Während die Support Library Android 2.3+ unterstützte, garantiert AndroidX den Betrieb auf Geräten mit Android 4.0 (API 14) und höher — dies deckt laut Google Play Console 2024 über 99% der aktiven Geräte ab.
AndroidX umfasst über 100 Bibliotheken, gruppiert nach Kategorien. Jede Gruppe deckt einen bestimmten Bereich ab: UI, Daten, Navigation, Hintergrundaufgaben, Multimedia und Tests. Nachfolgend finden Sie eine Übersicht der wichtigsten Module.
androidx.core:core ist die Basissbibliothek, die abwärtskompatible Versionen von System-APIs enthält: NotificationCompat, ActivityCompat, ContextCompat. Das Modul core-ktx bietet Kotlin-Erweiterungen für die Arbeit mit Dateien, SharedPreferences und View-Elementen.
Die Bibliothek androidx.activity:activity führte die Activity Result API (registerForActivityResult) ein, die die veraltete startActivityForResult ersetzt. Das Modul fragment:fragment verwaltet den Lebenszyklus von Fragmenten und unterstützt FragmentManager für Transaktionen und den Backstack.
androidx.lifecycle ist die Grundlage der Jetpack-Architektur. LifecycleOwner und LifecycleObserver ermöglichen es Komponenten, auf Änderungen des Activity- oder Fragment-Lebenszyklus zu reagieren. ViewModel bewahrt Daten bei Bildschirmdrehung, während LiveData die UI über Datenänderungen benachrichtigt.
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
}
}
}
androidx.recyclerview:recyclerview ist eine leistungsstarke Komponente zur Anzeige von Listen und Gittern. RecyclerView unterstützt LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration und Animationen über ItemAnimator. Die ListAdapter-Bibliothek mit AsyncListDiffer vereinfacht Listenaktualisierungen durch automatische Differenzberechnung.
androidx.navigation:navigation ist eine Bibliothek zur Navigation zwischen Bildschirmen. Die Navigation Component arbeitet mit NavHostFragment und NavController, unterstützt Safe Args für die Übergabe typisierter Parameter und Deep Links für externe Links. NavGraph beschreibt alle Routen in einer XML-Datei.
androidx.compose.ui ist ein deklaratives UI-Framework, Jetpack Compose, das auf Kotlin basiert. Im Gegensatz zum View-System zeichnet Compose nur geänderte Elemente durch Recomposition neu. Material Design 3-Komponenten (Button, TextField, Scaffold) sind im Modul material3 verfügbar.
| Bibliothek | Artefakt | Zweck |
|---|---|---|
| Fragment | androidx.fragment | Fragmentverwaltung und Transaktionen |
| RecyclerView | androidx.recyclerview | Optimierte Listen und Gitter |
| Navigation | androidx.navigation | Bildschirmnavigation |
| Compose UI | androidx.compose.ui | Deklarative UI in Kotlin |
androidx.room:room ist ein ORM für die lokale Datenspeicherung. Room generiert DAO-Klassen aus annotierten SQLite-Abfragen, validiert die SQL-Syntax zur Kompilierzeit und unterstützt RxJava und Kotlin Flow. Version 2.6 enthält KSP-Unterstützung für schnellere Codegenerierung.
androidx.work:workmanager ist eine Bibliothek für Hintergrundaufgaben mit garantierter Ausführung. WorkManager unterstützt periodische Aufgaben, Arbeitsketten (beginWith, then) und Startkriterien (Constraints: Netzwerk, Ladung, Speicher). Selbst wenn die App geschlossen ist, liefert WorkManager die Aufgabe nach einem Geräteneustart aus.
androidx.datastore:datastore ist ein moderner Ersatz für SharedPreferences. DataStore verwendet Kotlin Coroutines und Flow, arbeitet synchron und asynchron und verhindert die Blockierung des UI-Threads. Preferences DataStore speichert einfache Schlüssel-Wert-Paare, während Proto DataStore typisierte Objekte über Protocol Buffers verarbeitet.
Die automatische Migration ist die von Google empfohlene Methode für den Übergang von der Support Library zu AndroidX. Android Studio enthält ab Version 3.2 das integrierte Tool Refactor Migrate to AndroidX, das Namensräume ersetzt und Abhängigkeiten in build.gradle aktualisiert.
Vor der Migration müssen Sie die compileSdk-Version auf 28 oder höher aktualisieren. Stellen Sie außerdem sicher, dass alle Drittanbieter-Bibliotheken AndroidX unterstützen. Wenn eine Abhängigkeit noch nicht migriert ist, verwenden Sie das Flag android.enableJetifier=true in gradle.properties — es schreibt automatisch den Bytecode von Drittanbieter-Bibliotheken um.
Wählen Sie in Android Studio aus dem Menü Refactor Migrate to AndroidX. Die IDE scannt das gesamte Projekt, findet alle Importe aus dem Paket android.support.* und ersetzt sie durch androidx.*. Die Abhängigkeiten in app/build.gradle werden ebenfalls aktualisiert — Support Library-Artefakte werden durch entsprechende AndroidX-Versionen ersetzt.
Nach der Migration kann der Gradle Sync Fehler anzeigen, wenn einige Abhängigkeiten nicht gefunden wurden. Überprüfen Sie die Liste der verwendeten Bibliotheken in der Google Maven-Dokumentation — alle AndroidX-Artefakte sind auf google() veröffentlicht. Wenn eine Bibliothek nicht verfügbar ist, fügen Sie mavenCentral() zu repositories hinzu.
android {
compileSdk 34
}
dependencies {
// Support Library (veraltet)
// 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'
}
Wenn das Projekt zu groß ist oder benutzerdefinierte Views aus der Support Library enthält, kann die automatische Ersetzung unvollständig sein. Ersetzen Sie manuell alle Zeichenfolgen im Code: Ändern Sie Importe, XML-Attribute (app/src/main/res) und Manifest-Referenzen. Bei Support Library-Attributen ändert sich das Präfix android: zu app: (z. B. app:cardCornerRadius statt android:cardCornerRadius).
Überprüfen Sie nach der manuellen Migration die R-Referenzen. Die Support Library exportierte Ressourcen über android.support.v7.appcompat.R, während AndroidX androidx.appcompat.R verwendet. Durchsuchen Sie das Projekt und ersetzen Sie alle Verweise auf alte R-Pfade. Der Projekt-Build sollte ohne Fehler oder Abwarnungen abgeschlossen werden.
Der erste Vorteil von AndroidX ist die Modularität. Sie binden nur die Bibliotheken ein, die Sie tatsächlich verwenden. Wenn Ihre App nur RecyclerView und Navigation benötigt, müssen Sie nicht die gesamte Support Library mit allen View-Komponenten einbinden. Dies reduziert die APK-Größe und beschleunigt die Build-Zeit.
Der zweite Vorteil sind regelmäßige Updates. Jetpack veröffentlicht alle 1–3 Monate stabile Versionen. Room 2.6.0, veröffentlicht 2024, fügte KSP-Unterstützung und Kotlin 2.0-Kompatibilität hinzu. Navigation 2.8.0 führte typsichere Routen basierend auf Kotlinx Serialization ein. Entwickler erhalten neue Funktionen, ohne auf die nächste Android-Version warten zu müssen.
Der dritte Vorteil ist die Kotlin-Integration. Alle AndroidX-Bibliotheken haben -ktx-Module mit Erweiterungsfunktionen. viewLifecycleOwner.lifecycleScope startet Coroutinen im Fragment-Kontext, collectLatest verarbeitet Flow, und SharedFlow und StateFlow sind vollständig mit lifecycle-aware-Komponenten kompatibel. Dies macht den Code prägnanter und sicherer.
Die Abwärtskompatibilität ist ein entscheidender Vorteil von AndroidX gegenüber neuen Plattform-APIs. Sie können AppCompatDelegate.setDefaultNightMode für das dunkle Theme auf Android 4.0+, NotificationCompat.setBubble für Bubbles auf Android 5.0+ und LocationRequestCompat für fused location auf Android 4.0+ verwenden. Die Geräteabdeckung erreicht 99%, ohne die minimale SDK-Version zu erhöhen.
Der vierte Vorteil sind Tests. AndroidX enthält die Bibliothek androidx.test zum Schreiben von instrumentierten und Unit-Tests. FragmentScenario und ActivityScenario ermöglichen das Testen von UI-Komponenten in Isolation, während TestNavHostController die Navigation ohne ein echtes Gerät überprüft. MockK und Robolectric ergänzen das Ökosystem.
Häufig gestellte Fragen
AndroidX verwendet den Namensraum androidx.* statt android.support.*, hat unabhängige Versionierung (SemVer), enthält Jetpack-Bibliotheken und unterstützt Kotlin -ktx-Erweiterungen. Die Support Library wurde 2019 auf Version 28.0.0 eingefroren.
Aktivieren Sie in Android Studio das Flag Use AndroidX im Projekterstellungsschritt. Fügen Sie für bestehende Projekte android.useAndroidX=true und android.enableJetifier=true in gradle.properties hinzu. Ersetzen Sie dann die Abhängigkeiten in build.gradle durch Artefakte aus der Gruppe androidx.
Google Play verlangt, dass alle Apps und Updates AndroidX verwenden. Der Support der Support Library wurde eingestellt und sie erhält keine Sicherheitspatches mehr. Wenn Ihre App noch nicht migriert ist, kann dies zur Ablehnung des Updates in der Google Play Console führen.
Jetpack ist eine Sammlung von Bibliotheken, Tools und Richtlinien von Google für die Android-App-Entwicklung. AndroidX ist die Grundlage von Jetpack. Jetpack umfasst Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) und Behavior (WorkManager, Navigation, CameraX).
Ja, Jetpack Compose selbst ist Teil von AndroidX (androidx.compose.ui). Die Bibliotheken ViewModel, Navigation, Room und WorkManager sind vollständig mit Compose kompatibel. Die Funktionen collectAsState() und collectAsStateWithLifecycle() bieten Flow-Integration mit Composable-Funktionen.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch