AndroidX: nedir, temel kütüphaneler ve geçiş

Yazar: IT Sectr Yayınlanma: 2026-05-01 Okuma süresi: 8 dk

AndroidX, Google'ın eski Support Library'nin yerini alan Jetpack kütüphaneleri setidir. Google Developer Documentation, 2024'e göre AndroidX, tüm Android sürümleri için geriye dönük uyumlu bileşenler sağlar ve modern Android geliştirmenin standardıdır. AndroidX kütüphaneleri; UI, navigasyon, veri işleme, kamera ve arka plan görevleri için araçlar içerir.

Önemli Noktalar

  • AndroidX, Support Library'nin halefidir, 2018'de Jetpack'in bir parçası olarak yayınlandı
  • AndroidX kütüphaneleri API sürümünden bağımsızdır ve Android 4.0+ cihazlarda çalışır
  • Support Library'den geçiş, Android Studio aracılığıyla otomatik olarak yapılır
  • Temel modüller: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Anlamsal sürümleme, kütüphanelerin birbirinden bağımsız olarak güncellenmesine olanak tanır

AndroidX Nedir

AndroidX, Android Jetpack'in bir parçası olan açık kaynaklı bir kütüphanedir. Google, 2018'de AndroidX'i, 2011'den beri eski Android sürümleri için geriye dönük uyumlu bileşenler sağlayan Support Library'nin yerine geçmek üzere yayınladı.

AndroidX'ten önce, her Support Library bileşeninin targetSdkVersion'a bağlı kendi sürümü vardı. Geliştiriciler aynı kütüphanenin birden çok sürümünü aynı anda eklemek zorunda kalıyordu, bu da bağımlılık çakışmalarına ve APK boyutunun artmasına neden oluyordu.

AndroidX, anlamsal sürümleme (SemVer) ile bu sorunu çözdü. Artık her kütüphane, MAJOR.MINOR.PATCH formatında sürüme sahip bağımsız bir Gradle yapıtıdır. Geliştiriciler, Activity, Fragment veya diğer modüllere dokunmadan Room'u 2.4.0'dan 2.6.0'a güncelleyebilir.

AndroidX'in Tarihçesi

AndroidX 1.0.0'ın ilk kararlı sürümü, Aralık 2018'de Android 9 Pie ile birlikte geldi. Google, Support Library'nin bakım moduna geçtiğini ve tüm yeni bileşenlerin (Navigation, WorkManager, Compose) yalnızca AndroidX'in bir parçası olarak yayınlanacağını duyurdu. Support Library'nin son sürümü olan 28.0.0, 2019'da yayınlandı.

Google I/O 2019'a göre, geçişin temel nedeni güncelleme yayınlarını hızlandırma ihtiyacıydı. Eski modelde, tek bir paket sürümü nedeniyle bir kütüphane diğerini beklemek zorundaydı. AndroidX bu darboğazı ortadan kaldırdı ve Jetpack her 2–3 ayda bir ana ve alt sürümler almaya başladı.

AndroidX ve Support Library Arasındaki Farklar

Temel fark ad alanıdır. Support Library android.support.* paketini kullanırken, AndroidX androidx.*'e geçti. Bu değişiklik, kütüphanelerin işlevsel modüllere ayrılmasını sağladı. Örneğin, Support Library'deki Fragment, android.support.v4.app.Fragment olarak adlandırılırken, AndroidX'te androidx.fragment.app.Fragment'tir.

İkinci önemli fark mimaridir. AndroidX, Jetpack (bir dizi uygulama mimarisi önerisi) ile birlikte gelir. Jetpack; ViewModel, LiveData, Room, Navigation ve WorkManager'ı içerir ve bunlar dağınık yardımcı programlar yerine birleşik bir ekosistem olarak tasarlanmıştır.

Geriye dönük uyumluluk da iyileşti. Support Library Android 2.3+'ı desteklerken, AndroidX, Android 4.0 (API 14) ve üzeri cihazlarda çalışmayı garanti eder ve Google Play Console 2024'e göre aktif cihazların %99'undan fazlasını kapsar.

AndroidX Kütüphane Bileşenleri

AndroidX, kategoriye göre gruplandırılmış 100'den fazla kütüphane içerir. Her grup belirli bir alanı kapsar: UI, veri, navigasyon, arka plan görevleri, multimedya ve test. Aşağıda temel modüllere genel bir bakış bulunmaktadır.

Çekirdek ve Temel Kütüphaneler

androidx.core:core, sistem API'lerinin geriye dönük uyumlu sürümlerini içeren temel kütüphanedir: NotificationCompat, ActivityCompat, ContextCompat. core-ktx modülü, dosyalar, SharedPreferences ve görünüm öğeleriyle çalışmak için Kotlin uzantıları sağlar.

androidx.activity:activity kütüphanesi, kullanımdan kaldırılan startActivityForResult'ın yerini alan Activity Result API'yi (registerForActivityResult) tanıttı. fragment:fragment modülü, parçaların yaşam döngüsünü yönetir ve işlemler ile geri yığını için FragmentManager'ı destekler.

androidx.lifecycle, Jetpack mimarisinin temelidir. LifecycleOwner ve LifecycleObserver, bileşenlerin Activity veya Fragment yaşam döngüsü değişikliklerine tepki vermesini sağlar. ViewModel, ekran döndürme sırasında verileri korurken, LiveData veri değişikliklerini UI'ya bildirir.

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ütüphaneleri

androidx.recyclerview:recyclerview, listeleri ve ızgaraları görüntülemek için güçlü bir bileşendir. RecyclerView; LayoutManager'ı (LinearLayoutManager, GridLayoutManager), ItemDecoration'ı ve ItemAnimator aracılığıyla animasyonları destekler. AsyncListDiffer ile ListAdapter kütüphanesi, otomatik fark hesaplamasıyla liste güncellemelerini basitleştirir.

androidx.navigation:navigation, ekranlar arasında gezinmek için bir kütüphanedir. Navigation Component, NavHostFragment ve NavController ile çalışır, tür belirtilmiş parametreler iletmek için Safe Args'ı ve harici bağlantılar için Deep Links'i destekler. NavGraph, tüm rotaları bir XML dosyasında tanımlar.

androidx.compose.ui, Kotlin üzerine inşa edilmiş bildirimsel bir UI çerçevesi olan Jetpack Compose'dur. View sisteminin aksine Compose, yeniden birleştirme yoluyla yalnızca değiştirilen öğeleri yeniden çizer. Material Design 3 bileşenleri (Button, TextField, Scaffold) material3 modülünde mevcuttur.

KütüphaneYapıtAmaç
Fragmentandroidx.fragmentParça yönetimi ve işlemler
RecyclerViewandroidx.recyclerviewOptimize edilmiş listeler ve ızgaralar
Navigationandroidx.navigationEkran navigasyonu
Compose UIandroidx.compose.uiKotlin'de bildirimsel UI

Veri Kütüphaneleri

androidx.room:room, yerel veri depolama için bir ORM'dir. Room, açıklamalı SQLite sorgularından DAO sınıfları oluşturur, derleme zamanında SQL söz dizimini doğrular ve RxJava ile Kotlin Flow'u destekler. Sürüm 2.6, daha hızlı kod oluşturma için KSP desteği içerir.

androidx.work:workmanager, garantili yürütme ile arka plan görevleri için bir kütüphanedir. WorkManager; periyodik görevleri, iş zincirlerini (beginWith, then) ve başlatma kriterlerini (Constraints: ağ, şarj, depolama) destekler. Uygulama kapalı olsa bile WorkManager, cihaz yeniden başlatıldıktan sonra görevi teslim eder.

androidx.datastore:datastore, SharedPreferences'ın modern bir yerine geçendir. DataStore, Kotlin Coroutines ve Flow kullanır, eşzamanlı ve eşzamansız çalışarak UI iş parçacığının bloke edilmesini önler. Preferences DataStore basit anahtar-değer çiftlerini depolar, Proto DataStore ise Protocol Buffers aracılığıyla tür belirtilmiş nesneleri işler.

AndroidX'e Nasıl Geçilir

Otomatik geçiş, Support Library'den AndroidX'e geçiş için Google tarafından önerilen yöntemdir. Android Studio sürüm 3.2'den itibaren, ad alanlarını değiştiren ve build.gradle'daki bağımlılıkları güncelleyen yerleşik Refactor Migrate to AndroidX aracını içerir.

Geçişten önce compileSdk sürümünü 28 veya üzerine güncellemeniz gerekir. Ayrıca tüm üçüncü taraf kütüphanelerin AndroidX'i desteklediğinden emin olun. Bir bağımlılık henüz geçiş yapmadıysa, gradle.properties içinde android.enableJetifier=true bayrağını kullanın — bu, üçüncü taraf kütüphanelerin bayt kodunu otomatik olarak yeniden yazar.

Android Studio'da Otomatik Geçiş

Android Studio'da menüden Refactor Migrate to AndroidX'i seçin. IDE, tüm projeyi tarayacak, android.support.* paketindeki tüm içe aktarımları bulacak ve bunları androidx.* ile değiştirecektir. app/build.gradle'daki bağımlılıklar da güncellenecek — Support Library yapıtları, karşılık gelen AndroidX sürümleriyle değiştirilecektir.

Geçişten sonra, bazı bağımlılıklar bulunamazsa Gradle Sync hatalar gösterebilir. Google Maven belgelerinde kullanılan kütüphanelerin listesini kontrol edin — tüm AndroidX yapıtları google() üzerinde yayınlanmıştır. Bir kütüphane mevcut değilse, repositories'e mavenCentral() ekleyin.

groovy
android {
    compileSdk 34
}

dependencies {
    // Destek Kitaplığı (kullanımdan kaldırıldı)
    // 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'
}

Manuel Geçiş

Proje çok büyükse veya Support Library'den özel View'lar içeriyorsa, otomatik değiştirme eksik olabilir. Kod içindeki tüm dizeleri manuel olarak değiştirin: içe aktarımları, XML niteliklerini (app/src/main/res) ve bildirim referanslarını güncelleyin. Support Library nitelikleri için android: öneki app: olarak değişir (örneğin, android:cardCornerRadius yerine app:cardCornerRadius).

Manuel geçişten sonra R referanslarını kontrol edin. Support Library, kaynakları android.support.v7.appcompat.R aracılığıyla dışa aktarırken, AndroidX androidx.appcompat.R kullanır. Projede arama yapın ve eski R yollarına yapılan tüm referansları değiştirin. Proje derlemesi, hata veya kullanımdan kaldırma uyarısı olmadan tamamlanmalıdır.

AndroidX Kullanmanın Avantajları

AndroidX'in ilk avantajı modülerliktir. Yalnızca gerçekten kullandığınız kütüphaneleri eklersiniz. Uygulamanız yalnızca RecyclerView ve Navigation'a ihtiyaç duyuyorsa, tüm View bileşenleriyle birlikte Support Library'nin tamamını eklemeniz gerekmez. Bu, APK boyutunu azaltır ve derleme süresini hızlandırır.

İkinci avantaj düzenli güncellemelerdir. Jetpack her 1–3 ayda bir kararlı sürümler yayınlar. 2024'te yayınlanan Room 2.6.0, KSP desteği ve Kotlin 2.0 uyumluluğu ekledi. Navigation 2.8.0, Kotlinx Serialization tabanlı tür güvenli rotaları tanıttı. Geliştiriciler, bir sonraki Android sürümünü beklemeden yeni özellikler alır.

Üçüncü avantaj Kotlin entegrasyonudur. Tüm AndroidX kütüphanelerinde uzantı işlevlerine sahip -ktx modülleri bulunur. viewLifecycleOwner.lifecycleScope, parça bağlamında eşyordamlar başlatır, collectLatest Flow'u işler ve SharedFlow ile StateFlow, yaşam döngüsü bilincine sahip bileşenlerle tamamen uyumludur. Bu, kodu daha özlü ve güvenli hale getirir.

Geriye dönük uyumluluk, yeni platform API'lerine kıyasla AndroidX'in temel bir avantajıdır. Android 4.0+'da koyu tema için AppCompatDelegate.setDefaultNightMode'u, Android 5.0+'da baloncuklar için NotificationCompat.setBubble'ı ve Android 4.0+'da birleşik konum için LocationRequestCompat'ı kullanabilirsiniz. Minimum SDK sürümünü artırmadan cihaz kapsamı %99'a ulaşır.

Dördüncü avantaj testtir. AndroidX, araçlı ve birim testleri yazmak için androidx.test kütüphanesini içerir. FragmentScenario ve ActivityScenario, UI bileşenlerini izole olarak test etmeye olanak tanırken, TestNavHostController gerçek bir cihaz çalıştırmadan navigasyonu doğrulamayı sağlar. MockK ve Robolectric ekosistemi tamamlar.

Sıkça Sorulan Sorular

AndroidX, Support Library'den nasıl farklıdır?

AndroidX, android.support.* yerine androidx.* ad alanını kullanır, bağımsız sürümlemeye (SemVer) sahiptir, Jetpack kütüphanelerini içerir ve Kotlin -ktx uzantılarını destekler. Support Library, 2019'da 28.0.0 sürümünde dondurulmuştur.

Yeni bir projeye AndroidX nasıl eklenir?

Android Studio'da, proje oluşturma adımında Use AndroidX bayrağını etkinleştirin. Mevcut projeler için gradle.properties dosyasına android.useAndroidX=true ve android.enableJetifier=true ekleyin. Ardından build.gradle'daki bağımlılıkları androidx grubundaki yapılarla değiştirin.

AndroidX'e geçiş zorunlu mu?

Google Play, tüm uygulamaların ve güncellemelerin AndroidX kullanmasını zorunlu kılar. Support Library'nin bakımı durdurulmuştur ve artık güvenlik yamaları almamaktadır. Uygulamanız henüz geçiş yapmadıysa, bu Google Play Console'da güncellemenin reddedilmesine yol açabilir.

Android'de Jetpack nedir?

Jetpack, Android uygulama geliştirme için Google'dan kütüphaneler, araçlar ve yönergeler setidir. AndroidX, Jetpack'in temelidir. Jetpack; Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) ve Behavior (WorkManager, Navigation, CameraX) içerir.

AndroidX, Jetpack Compose ile kullanılabilir mi?

Evet, Jetpack Compose kendisi AndroidX'in (androidx.compose.ui) bir parçasıdır. ViewModel, Navigation, Room ve WorkManager kütüphaneleri Compose ile tamamen uyumludur. collectAsState() ve collectAsStateWithLifecycle() işlevleri, Composable işlevleriyle Flow entegrasyonu sağlar.

Özet

  • AndroidX, anlamsal sürümleme ile Support Library'nin halefi olan modern bir Jetpack kütüphane setidir
  • 100'den fazla modül UI, veri, navigasyon, arka plan görevleri, multimedya ve testi kapsar
  • Android Studio'da otomatik geçiş, birkaç tıklamayla içe aktarımları ve bağımlılıkları değiştirir
  • Kotlin uzantıları -ktx, ortak kod miktarını azaltır ve eşyordamlar ile Flow ile entegre olur
  • Android 4.0+ ile geriye dönük uyumluluk, aktif cihazların %99'unu kapsar
  • Jetpack, AndroidX'i mimari önerilerle (ViewModel, Room, Navigation, WorkManager) birleştirir
  • Tüm yeni projelerde AndroidX kullanın — 2019'dan beri endüstri standardıdır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun