AndroidX: co to jest, kluczowe biblioteki i migracja

Autor: IT Sectr Opublikowano: 2026-05-01 Czas czytania: 8 min

AndroidX to zestaw bibliotek Jetpack od Google, który zastąpił przestarzałą Support Library. Według Google Developer Documentation, 2024, AndroidX zapewnia wstecznie kompatybilne komponenty dla wszystkich wersji Androida i jest standardem nowoczesnego tworzenia aplikacji na Androida. Biblioteki AndroidX obejmują narzędzia do UI, nawigacji, pracy z danymi, kamerą i zadaniami w tle.

Najważniejsze

  • AndroidX — następca Support Library, wydany w 2018 roku jako część Jetpack
  • Biblioteki AndroidX nie zależą od wersji API i działają na urządzeniach z Android 4.0+
  • Migracja z Support Library jest wykonywana przez Android Studio automatycznie
  • Główne moduły: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Semantyczne wersjonowanie pozwala aktualizować biblioteki niezależnie od siebie

Czym jest AndroidX

AndroidX to biblioteka open source, która jest częścią Android Jetpack. Google wydało AndroidX w 2018 roku jako zamiennik Support Library, która od 2011 roku dostarczała wstecznie kompatybilne komponenty dla starych wersji Androida.

Przed pojawieniem się AndroidX każdy komponent Support Library miał własną wersję powiązaną z targetSdkVersion. Deweloperzy musieli jednocześnie podłączać kilka wersji tej samej biblioteki, co prowadziło do konfliktów zależności i wzrostu rozmiaru pliku APK.

AndroidX rozwiązał ten problem dzięki semantycznemu wersjonowaniu (SemVer). Teraz każda biblioteka to osobny artefakt Gradle z wersją w formacie MAJOR.MINOR.PATCH. Deweloper może aktualizować Room z 2.4.0 do 2.6.0, nie ruszając Activity, Fragment ani innych modułów.

Historia powstania AndroidX

Pierwsze stabilne wydanie AndroidX 1.0.0 miało miejsce w grudniu 2018 roku wraz z Android 9 Pie. Google ogłosiło, że Support Library przechodzi w tryb wsparcia i wszystkie nowe komponenty — Navigation, WorkManager, Compose — będą wydawane wyłącznie w ramach AndroidX. Ostatnia wersja Support Library — 28.0.0 — została wydana w 2019 roku.

Według Google I/O 2019, kluczowym powodem przejścia była potrzeba przyspieszenia wydawania aktualizacji. W starym modelu jedna biblioteka czekała na drugą z powodu wspólnej wersji pakietu. AndroidX usunął to blokowanie i Jetpack zaczął otrzymywać główne i pomniejsze wydania co 2–3 miesiące.

Różnica między AndroidX a Support Library

Główna różnica to przestrzeń nazw. Support Library używała pakietu android.support.*, a AndroidX przeszedł na androidx.*. Ta zmiana pozwoliła podzielić biblioteki na moduły funkcjonalne. Na przykład Fragment z Support Library nazywał się android.support.v4.app.Fragment, a w AndroidX — androidx.fragment.app.Fragment.

Druga ważna różnica to architektura. AndroidX jest dostarczany razem z Jetpack — zestawem zaleceń dotyczących architektury aplikacji. Jetpack obejmuje ViewModel, LiveData, Room, Navigation i WorkManager, które zostały zaprojektowane jako jedna ekosystem, a nie jako rozproszone narzędzia.

Wsteczna kompatybilność również się poprawiła. Jeśli Support Library obsługiwała Android 2.3+, to AndroidX gwarantuje działanie na urządzeniach z Android 4.0 (API 14) i nowszym — obejmuje to ponad 99% aktywnych urządzeń według Google Play Console 2024.

Skład bibliotek AndroidX

AndroidX obejmuje ponad 100 bibliotek podzielonych na grupy. Każda grupa odpowiada za określony obszar: UI, dane, nawigację, zadania w tle, multimedia i testowanie. Poniżej znajduje się przegląd kluczowych modułów.

Core i biblioteki podstawowe

androidx.core:core — podstawowa biblioteka, która zawiera wstecznie kompatybilne wersje systemowych API: NotificationCompat, ActivityCompat, ContextCompat. Moduł core-ktx udostępnia rozszerzenia Kotlin do pracy z plikami, SharedPreferences i elementami widoku.

Biblioteka androidx.activity:activity wprowadziła Activity Result API (registerForActivityResult), który zastąpił przestarzały startActivityForResult. Moduł fragment:fragment zarządza cyklem życia fragmentów i obsługuje FragmentManager dla transakcji i stosu wstecznego.

androidx.lifecycle — podstawa architektury Jetpack. LifecycleOwner i LifecycleObserver pozwalają komponentom reagować na zmiany cyklu życia Activity lub Fragment. ViewModel przechowuje dane przy obrocie ekranu, a LiveData powiadamia UI o zmianach w danych.

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

Biblioteki UI

androidx.recyclerview:recyclerview — potężny komponent do wyświetlania list i siatek. RecyclerView obsługuje LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration i animacje przez ItemAnimator. Biblioteka ListAdapter z AsyncListDiffer upraszcza aktualizację listy z automatycznym obliczaniem diff.

androidx.navigation:navigation — biblioteka do nawigacji między ekranami. Navigation Component współpracuje z NavHostFragment i NavController, obsługuje Safe Args do przekazywania typowanych parametrów i Deep Links dla linków zewnętrznych. NavGraph opisuje wszystkie trasy w pliku XML.

androidx.compose.ui — deklaratywny framework UI Jetpack Compose, zbudowany na Kotlin. W przeciwieństwie do systemu View, Compose przerysowuje tylko zmienione elementy poprzez recomposition. Komponenty Material Design 3 (Button, TextField, Scaffold) są dostępne w module material3.

BibliotekaArtefaktPrzeznaczenie
Fragmentandroidx.fragmentZarządzanie fragmentami i transakcjami
RecyclerViewandroidx.recyclerviewListy i siatki z optymalizacją
Navigationandroidx.navigationNawigacja między ekranami
Compose UIandroidx.compose.uiDeklaratywny UI na Kotlin

Biblioteki do pracy z danymi

androidx.room:room — ORM do lokalnego przechowywania danych. Room generuje klasy DAO z adnotowanych zapytań SQLite, sprawdza składnię SQL na etapie kompilacji i obsługuje RxJava oraz Kotlin Flow. Wersja 2.6 zawiera wsparcie dla KSP do szybszego generowania kodu.

androidx.work:workmanager — biblioteka do zadań w tle z gwarantowanym wykonaniem. WorkManager obsługuje zadania okresowe, łańcuchy prac (beginWith, then) i kryteria uruchamiania (Constraints: sieć, ładowanie, pamięć). Nawet jeśli aplikacja jest zamknięta, WorkManager dostarcza zadanie po ponownym uruchomieniu urządzenia.

androidx.datastore:datastore — nowoczesny zamiennik SharedPreferences. DataStore używa Kotlin Coroutines i Flow, działa synchronicznie i asynchronicznie, eliminując blokowanie wątku UI. Preferences DataStore przechowuje proste pary klucz-wartość, a Proto DataStore — typowane obiekty przez Protocol Buffers.

Jak migrować na AndroidX

Automatyczna migracja to zalecany przez Google sposób przejścia z Support Library na AndroidX. Android Studio od wersji 3.2 zawiera wbudowane narzędzie Refactor Migrate to AndroidX, które zastępuje przestrzenie nazw i aktualizuje zależności w build.gradle.

Przed migracją należy zaktualizować wersję compileSdk do 28 lub wyższej. Warto również upewnić się, że wszystkie biblioteki zewnętrzne obsługują AndroidX. Jeśli jakaś zależność jeszcze nie została zmigrowana, można użyć flagi android.enableJetifier=true w gradle.properties — automatycznie przepisuje ona bajtkod bibliotek zewnętrznych.

Automatyczna migracja w Android Studio

W Android Studio wybierz Refactor Migrate to AndroidX z menu. IDE przeskanuje cały projekt, znajdzie wszystkie importy z pakietu android.support.* i zastąpi je na androidx.*. Zaktualizują się również zależności w app/build.gradle — artefakty Support Library zostaną zastąpione odpowiednimi wersjami AndroidX.

Po migracji Gradle Sync może pokazać błędy, jeśli niektóre zależności nie zostały znalezione. Sprawdź listę używanych bibliotek w dokumentacji Google Maven — wszystkie artefakty AndroidX są opublikowane na google(). Jeśli biblioteka jest niedostępna, dodaj mavenCentral() w repositories.

groovy
android {
    compileSdk 34
}

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

Ręczna migracja

Jeśli projekt jest zbyt duży lub zawiera niestandardowe View z Support Library, automatyczna zamiana może być niekompletna. Ręcznie zastąp wszystkie ciągi w kodzie: zmień importy, atrybuty w XML (app/src/main/res) i odniesienia w manifeście. Dla atrybutów Support Library prefiks android: zmienia się na app: (np. app:cardCornerRadius zamiast android:cardCornerRadius).

Po ręcznej migracji sprawdź odniesienia R. Support Library eksportowała zasoby przez android.support.v7.appcompat.R, a AndroidX — przez androidx.appcompat.R. Uruchom wyszukiwanie w projekcie i zastąp wszystkie wzmianki starych ścieżek R. Kompilacja projektu powinna przechodzić bez błędów i ostrzeżeń deprecation.

Zalety korzystania z AndroidX

Pierwszą zaletą AndroidX jest modułowość. Podłączasz tylko te biblioteki, których faktycznie używasz. Jeśli aplikacja potrzebuje tylko RecyclerView i Navigation, nie ma potrzeby ciągnąć całej Support Library ze wszystkimi komponentami View. Zmniejsza to rozmiar APK i przyspiesza budowanie projektu.

Drugą zaletą są regularne aktualizacje. Jetpack wydaje stabilne wersje co 1–3 miesiące. Room 2.6.0, wydany w 2024 roku, dodał obsługę KSP i Kotlin 2.0. Navigation 2.8.0 wprowadził bezpieczne typy tras oparte na serializacji Kotlinx Serialization. Deweloperzy otrzymują nowe możliwości bez czekania na kolejną wersję Androida.

Trzecią zaletą jest integracja z Kotlin. Wszystkie biblioteki AndroidX mają moduły -ktx z funkcjami rozszerzeń. viewLifecycleOwner.lifecycleScope uruchamia korutyny w kontekście fragmentu, collectLatest przetwarza Flow, a SharedFlow i StateFlow są w pełni kompatybilne z komponentami Lifecycle-aware. To sprawia, że kod jest bardziej zwięzły i bezpieczniejszy.

Wsteczna kompatybilność to kluczowa zaleta AndroidX w porównaniu z nowymi API platformy. Możesz używać AppCompatDelegate.setDefaultNightMode dla ciemnego motywu na Android 4.0+, NotificationCompat.setBubble dla bąbelków na Android 5.0+ i LocationRequestCompat dla fused location na Android 4.0+. Zasięg urządzeń sięga 99% bez zwiększania minimalnej wersji SDK.

Czwartą zaletą jest testowanie. AndroidX zawiera bibliotekę androidx.test do pisania testów instrumentalnych i modułowych. FragmentScenario i ActivityScenario pozwalają testować komponenty UI w izolacji, a TestNavHostController — sprawdzać nawigację bez uruchamiania rzeczywistego urządzenia. MockK i Robolectric uzupełniają ekosystem.

Często zadawane pytania

Czym różni się AndroidX od Support Library?

AndroidX używa przestrzeni nazw androidx.* zamiast android.support.*, ma niezależne wersjonowanie (SemVer), obejmuje biblioteki Jetpack i obsługuje rozszerzenia Kotlin -ktx. Support Library została zamrożona na wersji 28.0.0 w 2019 roku.

Jak podłączyć AndroidX w nowym projekcie?

W Android Studio włącz flagę Use AndroidX w kroku tworzenia projektu. Dla istniejącego projektu dodaj android.useAndroidX=true i android.enableJetifier=true w gradle.properties. Następnie zastąp zależności w build.gradle na artefakty z grupy androidx.

Czy trzeba migrować na AndroidX?

Google Play wymaga, aby wszystkie aplikacje i aktualizacje używały AndroidX. Wsparcie dla Support Library zostało zakończone i nie otrzymuje ona poprawek bezpieczeństwa. Jeśli Twoja aplikacja jeszcze nie została zmigrowana, może to prowadzić do odrzucenia aktualizacji w Google Play Console.

Czym jest Jetpack w Android?

Jetpack to zestaw bibliotek, narzędzi i zaleceń od Google do tworzenia aplikacji na Androida. AndroidX jest podstawą Jetpack. W skład Jetpack wchodzą Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) i Behavior (WorkManager, Navigation, CameraX).

Czy można używać AndroidX z Jetpack Compose?

Tak, Jetpack Compose sam jest częścią AndroidX (androidx.compose.ui). Biblioteki ViewModel, Navigation, Room i WorkManager są w pełni kompatybilne z Compose. Funkcje collectAsState() i collectAsStateWithLifecycle() zapewniają integrację Flow z funkcjami Compose.

Podsumowanie

  • AndroidX — nowoczesny zestaw bibliotek Jetpack, następca Support Library z semantycznym wersjonowaniem
  • Ponad 100 modułów obejmuje UI, dane, nawigację, zadania w tle, multimedia i testowanie
  • Automatyczna migracja w Android Studio zastępuje importy i zależności kilkoma kliknięciami
  • Rozszerzenia Kotlin -ktx skracają kod szablonowy i integrują się z korutynami i Flow
  • Wsteczna kompatybilność z Android 4.0+ obejmuje 99% aktywnych urządzeń
  • Jetpack łączy AndroidX z zaleceniami architektonicznymi — ViewModel, Room, Navigation, WorkManager
  • Używaj AndroidX we wszystkich nowych projektach — to standard branży od 2019 roku

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również