AndroidX: какво е това, ключови библиотеки и миграция

Автор: IT Sectr Публикувано: 2026-05-01 Време за четене: 8 мин

AndroidX е набор от библиотеки Jetpack на Google, който замени остарялата Support Library. Според Google Developer Documentation, 2024, AndroidX предоставя обратно съвместими компоненти за всички версии на Android и е стандарт за съвременна Android разработка. Библиотеките на AndroidX включват инструменти за UI, навигация, работа с данни, камера и фонови задачи.

Основни точки

  • AndroidX — наследник на Support Library, пуснат през 2018 г. като част от Jetpack
  • Библиотеките на AndroidX не зависят от версията на API и работят на устройства с Android 4.0+
  • Миграцията от Support Library се извършва автоматично чрез Android Studio
  • Основни модули: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Семантичното версиониране позволява актуализиране на библиотеките независимо една от друга

Какво е AndroidX

AndroidX е библиотека с отворен код, която е част от Android Jetpack. Google пусна AndroidX през 2018 г. като замяна на Support Library, която от 2011 г. доставяше обратно съвместими компоненти за стари версии на Android.

Преди появата на AndroidX всеки компонент на Support Library имаше собствена версия, обвързана с targetSdkVersion. Разработчиците трябваше едновременно да свързват няколко версии на една и съща библиотека, което водеше до конфликти на зависимости и увеличаване на размера на APK файла.

AndroidX реши този проблем чрез семантично версиониране (SemVer). Сега всяка библиотека е отделен Gradle артефакт с версия във формат MAJOR.MINOR.PATCH. Разработчикът може да актуализира Room от 2.4.0 до 2.6.0, без да пипа Activity, Fragment или други модули.

История на появата на AndroidX

Първото стабилно издание AndroidX 1.0.0 се състоя през декември 2018 г. заедно с Android 9 Pie. Google обяви, че Support Library преминава в режим на поддръжка и всички нови компоненти — Navigation, WorkManager, Compose — ще излизат само в състава на AndroidX. Последната версия на Support Library — 28.0.0 — излезе през 2019 г.

Според Google I/O 2019, ключовата причина за прехода беше необходимостта от ускоряване на пускането на актуализации. В стария модел една библиотека чакаше друга поради единната версия на пакета. AndroidX премахна това блокиране и Jetpack започна да получава основни и второстепенни издания на всеки 2–3 месеца.

Разлика между AndroidX и Support Library

Основната разлика е пространството от имена. Support Library използваше пакета android.support.*, а AndroidX премина към androidx.*. Тази промяна позволи разделянето на библиотеките на функционални модули. Например Fragment от Support Library се наричаше android.support.v4.app.Fragment, а в AndroidX — androidx.fragment.app.Fragment.

Втората важна разлика е архитектурата. AndroidX се доставя заедно с Jetpack — набор от препоръки за архитектура на приложения. Jetpack включва ViewModel, LiveData, Room, Navigation и WorkManager, които са проектирани като единна екосистема, а не като разпръснати помощни средства.

Обратната съвместимост също се подобри. Докато Support Library поддържаше Android 2.3+, AndroidX гарантира работа на устройства с Android 4.0 (API 14) и по-нови — това покрива над 99% от активните устройства според Google Play Console 2024.

Състав на библиотеките на AndroidX

AndroidX включва над 100 библиотеки, разделени на групи. Всяка група отговаря за определена област: UI, данни, навигация, фонови задачи, мултимедия и тестване. По-долу е даден преглед на ключовите модули.

Core и основни библиотеки

androidx.core:core — основната библиотека, която съдържа обратно съвместими версии на системни API: NotificationCompat, ActivityCompat, ContextCompat. Модулът core-ktx предоставя Kotlin разширения за работа с файлове, SharedPreferences и елементи на изглед.

Библиотеката androidx.activity:activity въведе Activity Result API (registerForActivityResult), който замени остарелия startActivityForResult. Модулът fragment:fragment управлява жизнения цикъл на фрагментите и поддържа FragmentManager за транзакции и стек за връщане.

androidx.lifecycle — основата на архитектурата на Jetpack. LifecycleOwner и LifecycleObserver позволяват на компонентите да реагират на промени в жизнения цикъл на Activity или Fragment. ViewModel запазва данни при завъртане на екрана, а LiveData уведомява UI за промени в данните.

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 библиотеки

androidx.recyclerview:recyclerview — мощен компонент за показване на списъци и мрежи. RecyclerView поддържа LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration и анимации чрез ItemAnimator. Библиотеката ListAdapter с AsyncListDiffer опростява актуализирането на списък с автоматично изчисляване на разликите.

androidx.navigation:navigation — библиотека за навигация между екрани. Navigation Component работи с NavHostFragment и NavController, поддържа Safe Args за предаване на типизирани параметри и Deep Links за външни връзки. NavGraph описва всички маршрути в XML файл.

androidx.compose.ui — декларативната UI рамка Jetpack Compose, изградена върху Kotlin. За разлика от View системата, Compose прерисува само променените елементи чрез recomposition. Компонентите на Material Design 3 (Button, TextField, Scaffold) са достъпни в модула material3.

БиблиотекаАртефактПредназначение
Fragmentandroidx.fragmentУправление на фрагменти и транзакции
RecyclerViewandroidx.recyclerviewСписъци и мрежи с оптимизация
Navigationandroidx.navigationНавигация между екрани
Compose UIandroidx.compose.uiДекларативен UI на Kotlin

Библиотеки за работа с данни

androidx.room:room — ORM за локално съхранение на данни. Room генерира DAO класове от анотирани SQLite заявки, проверява SQL синтаксиса на етапа на компилиране и поддържа RxJava и Kotlin Flow. Версия 2.6 включва поддръжка за KSP за по-бързо генериране на код.

androidx.work:workmanager — библиотека за фонови задачи с гарантирано изпълнение. WorkManager поддържа периодични задачи, вериги от работи (beginWith, then) и критерии за стартиране (Constraints: мрежа, зареждане, памет). Дори ако приложението е затворено, WorkManager доставя задачата след рестартиране на устройството.

androidx.datastore:datastore — модерен заместител на SharedPreferences. DataStore използва Kotlin Coroutines и Flow, работи синхронно и асинхронно, като елиминира блокирането на UI нишката. Preferences DataStore съхранява прости двойки ключ-стойност, а Proto DataStore — типизирани обекти чрез Protocol Buffers.

Как да мигрираме към AndroidX

Автоматична миграция е препоръчителният от Google начин за преход от Support Library към AndroidX. Android Studio от версия 3.2 включва вградения инструмент Refactor Migrate to AndroidX, който заменя пространствата от имена и актуализира зависимостите в build.gradle.

Преди миграцията трябва да актуализирате версията compileSdk до 28 или по-висока. Също така се уверете, че всички библиотеки на трети страни поддържат AndroidX. Ако някоя зависимост все още не е мигрирана, можете да използвате флага android.enableJetifier=true в gradle.properties — той автоматично презаписва байткода на библиотеки на трети страни.

Автоматична миграция в Android Studio

В Android Studio изберете Refactor Migrate to AndroidX от менюто. IDE ще сканира целия проект, ще намери всички импорти от пакета android.support.* и ще ги замени с androidx.*. Също така зависимостите в app/build.gradle ще бъдат актуализирани — артефактите на Support Library ще бъдат заменени със съответните версии на AndroidX.

След миграцията Gradle Sync може да покаже грешки, ако някои зависимости не са намерени. Проверете списъка на използваните библиотеки в документацията на Google Maven — всички артефакти на AndroidX са публикувани на google(). Ако библиотеката не е налична, добавете mavenCentral() в repositories.

groovy
android {
    compileSdk 34
}

dependencies {
    // Support Library (остаряло)
    // 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'
}

Ръчна миграция

Ако проектът е твърде голям или съдържа персонализирани View от Support Library, автоматичната замяна може да бъде непълна. Ръчно заменете всички низове в кода: променете импортите, атрибутите в XML (app/src/main/res) и референциите в манифеста. За атрибути на Support Library префиксът android: се променя на app: (напр. app:cardCornerRadius вместо android:cardCornerRadius).

След ръчна миграция проверете R референциите. Support Library експортираше ресурси чрез android.support.v7.appcompat.R, а AndroidX — чрез androidx.appcompat.R. Пуснете търсене в проекта и заменете всички споменавания на стари R пътища. Компилацията на проекта трябва да премине без грешки и предупреждения за остарялост.

Предимства от използването на AndroidX

Първото предимство на AndroidX е модулността. Свързвате само онези библиотеки, които реално използвате. Ако приложението се нуждае само от RecyclerView и Navigation, няма нужда да теглите цялата Support Library с всички View компоненти. Това намалява размера на APK и ускорява изграждането на проекта.

Второто предимство — редовни актуализации. Jetpack пуска стабилни версии на всеки 1–3 месеца. Room 2.6.0, пуснат през 2024 г., добави поддръжка за KSP и Kotlin 2.0. Navigation 2.8.0 въведе типобезопасни маршрути, базирани на сериализация Kotlinx Serialization. Разработчиците получават нови възможности, без да чакат следващата версия на Android.

Третото предимство — интеграция с Kotlin. Всички библиотеки на AndroidX имат -ktx модули с разширяващи функции. viewLifecycleOwner.lifecycleScope стартира корутини в контекста на фрагмента, collectLatest обработва Flow, а SharedFlow и StateFlow са напълно съвместими с Lifecycle-aware компоненти. Това прави кода по-кратък и безопасен.

Обратна съвместимост — ключово предимство на AndroidX пред новите API на платформата. Можете да използвате AppCompatDelegate.setDefaultNightMode за тъмна тема на Android 4.0+, NotificationCompat.setBubble за балони на Android 5.0+ и LocationRequestCompat за fused location на Android 4.0+. Обхватът на устройствата достига 99% без увеличаване на минималната версия на SDK.

Четвъртото предимство — тестване. AndroidX включва библиотеката androidx.test за писане на инструментални и модулни тестове. FragmentScenario и ActivityScenario позволяват тестване на UI компоненти в изолация, а TestNavHostController — проверка на навигацията без стартиране на реално устройство. MockK и Robolectric допълват екосистемата.

Често задавани въпроси

По какво се различава AndroidX от Support Library?

AndroidX използва пространство от имена androidx.* вместо android.support.*, има независимо версиониране (SemVer), включва библиотеките на Jetpack и поддържа Kotlin разширения -ktx. Support Library беше замразена на версия 28.0.0 през 2019 г.

Как да свържа AndroidX в нов проект?

В Android Studio включете флага Use AndroidX в стъпката за създаване на проект. За съществуващ проект добавете android.useAndroidX=true и android.enableJetifier=true в gradle.properties. След това заменете зависимостите в build.gradle с артефакти от групата androidx.

Задължителна ли е миграцията към AndroidX?

Google Play изисква всички приложения и актуализации да използват AndroidX. Поддръжката на Support Library е прекратена и тя не получава корекции за сигурност. Ако вашето приложение все още не е мигрирано, това може да доведе до отхвърляне на актуализацията в Google Play Console.

Какво е Jetpack в Android?

Jetpack е набор от библиотеки, инструменти и препоръки от Google за разработка на Android приложения. AndroidX е основата на Jetpack. Jetpack включва Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) и Behavior (WorkManager, Navigation, CameraX).

Може ли AndroidX да се използва с Jetpack Compose?

Да, Jetpack Compose самият е част от AndroidX (androidx.compose.ui). Библиотеките ViewModel, Navigation, Room и WorkManager са напълно съвместими с Compose. Функциите collectAsState() и collectAsStateWithLifecycle() осигуряват интеграция на Flow с функциите на Compose.

Резюме

  • AndroidX — модерен набор от библиотеки Jetpack, наследник на Support Library със семантично версиониране
  • Над 100 модула покриват UI, данни, навигация, фонови задачи, мултимедия и тестване
  • Автоматичната миграция в Android Studio заменя импорти и зависимости с няколко кликвания
  • Kotlin разширенията -ktx намаляват стандартния код и се интегрират с корутини и Flow
  • Обратна съвместимост с Android 4.0+ покрива 99% от активните устройства
  • Jetpack обединява AndroidX с архитектурни препоръки — ViewModel, Room, Navigation, WorkManager
  • Използвайте AndroidX във всички нови проекти — това е индустриален стандарт от 2019 г.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също