SDK Platform: nedir, sürümleri ve Android SDK Manager

Yazar: IT Sectr Yayınlanma: 2026-02-09 Okuma süresi: 11 dk

Android SDK Platform, işletim sisteminin belirli bir sürümü için bir dizi kitaplık, sistem görüntüsü ve araçtır. Her platform kendi API Level'ine bağlıdır ve Android API sınıflarını içeren android.jar, çalışma zamanı bileşenleri ve bir öykünücü içerir. Google Developer Documentation, 2026'ya göre, geliştiriciler hedef OS sürümüne karşı kod derlemek için SDK Platform'u kullanır. Yüklü bir platform olmadan, bir APK oluşturmak veya uygulamayı öykünücüde çalıştırmak imkansızdır. SDK Manager bu bileşenlerin indirilmesini, güncellenmesini ve kaldırılmasını yönetir.

Önemli Noktalar

  • SDK Platform — belirli bir API Level'ine karşılık gelen bir Android sürümü için kitaplık ve araç seti.
  • API Level — kullanılabilir sınıfları ve yöntemleri tanımlayan Android SDK sürümünün sayısal tanımlayıcısı.
  • SDK Manager — SDK Platform, Tools ve sistem görüntülerini yüklemek, güncellemek ve kaldırmak için bir araç.
  • compileSdk — uygulamayı derlemek için kullanılan SDK Platform sürümü, en son kararlı sürüm olmalıdır.
  • targetSdk — uygulamanın test edildiği ve çalışma zamanı davranışının optimize edildiği API Level.

SDK Platform Nedir

SDK Platform, Android SDK'nın temel bir bileşenidir ve belirli bir Android sürümü için uygulama geliştirmek üzere eksiksiz bir kitaplık ve araç seti sunar. Her platform, yeni OS sürümleriyle artan bir tam sayı olan API Level ile tanımlanır. Örneğin, Android 13 API Level 33'e, Android 14 API Level 34'e, Android 15 API Level 35'e karşılık gelir.

Android Studio'dan (IDE) farklı olarak, SDK Platform bir kod düzenleyici veya hata ayıklayıcı içermez. Derleyiciye ve derleme sistemine bağlanan bir sistem katmanıdır. Bir geliştirici import android.app.Activity yazdığında, derleyici bu sınıfı belirli bir SDK Platform'un android.jar'ından alır. Gerekli API Level'ine sahip yüklü bir platform olmadan kod derlenmez.

Google, her kararlı Android sürümü için yeni bir SDK Platform yayınlar. Tarih, Android 1.0 (API 1)'den Android 15 (API 35)'e kadar 35'ten fazla API Level içerir. Her platform geriye dönük uyumludur: API Level 21 için yazılan kod API Level 35'te çalışır, ancak tersi geçerli değildir.

Her sürüm için neden ayrı bir SDK Platform gereklidir

Android hızla gelişir: her sürüm yeni API'ler ekler, mevcutların davranışını değiştirir ve kısıtlamalar getirir. Örneğin, Android 10 (API 29) Scoped Storage'ı, Android 12 (API 31) SplashScreen API'yi, Android 14 (API 34) zorunlu BroadcastReceiver bayraklarını getirdi. Geliştirici, bu yetenekleri kullanmak için uygulamayı mevcut platforma karşı derlemelidir.

Aynı zamanda, uygulama eski OS sürümlerinde çalışabilir. Bunun için Gradle'da minSdk (uygulamanın çalıştığı minimum API Level) belirtilir. Kod, sürüm kontrolleri ve koşullu API çağrıları kullanır. Bu yaklaşım, yeni özellikleri kaybetmeden uyumluluk sağlar.

Android SürümüAPI LevelKod AdıYayın Yılı
Android 1231Snow Cone2021
Android 1333Tiramisu2022
Android 1434Upside Down Cake2023
Android 1535Vanilla Ice Cream2024

SDK Platform Bileşimi: Ana Bileşenler

SDK Platform tek bir dosya değil, birlikte uygulamanın derlenmesini, oluşturulmasını ve test edilmesini sağlayan bir bileşen setidir. Ana öğe android.jar — bu sürüme dahil edilen Android API sınıflarını içeren bir arşivdir. Bu dosya Kotlin veya Java derleyicisine bağlanır ve geliştiricinin kullanabileceği sınıfları, yöntemleri ve ek açıklamaları belirler.

Sistem Görüntüleri ve Öykünücü

Her SDK Platform, Android Virtual Device öykünücüsü için bir System Image (işletim sistemi görüntüsü) içerir. İlgili görüntü olmadan, öykünücü gerekli API Level'ine sahip bir sanal cihazı başlatamaz. System Images farklı türlerde gelir: Google APIs (Google hizmetleriyle birlikte), Google Play (Play Store ile) ve AOSP (Google hizmetleri olmadan saf Android).

Derleme ve Hata Ayıklama Araçları

SDK Platform, bu API Level için optimize edilmiş bir Build-Tools ve Platform-Tools sürümü içerir. Build-Tools, aapt2 (Android Asset Packaging Tool), dx/d8 (Dalvik/ART derleyicisi) ve ApkSigner içerir. Platform-Tools, ADB (Android Debug Bridge), fastboot ve SQLite sağlar. Bu araçlar, SDK Manager aracılığıyla SDK Platform'dan bağımsız olarak güncellenir.

Platform Kaynakları

Her platform, standart Android kaynaklarını (sistem temaları, stiller, animasyonlar, renkler ve boyutlar) içerir. Bu kaynaklar derleme sırasında kullanılır: bir geliştirici @android:style/Theme.Material.Light referansı verirse, derleme sistemi tanımı SDK Platform kaynaklarından alır. Bu, tüm cihazlarda sistem bileşenlerinin tutarlı bir görünümünü garanti eder.

BileşenAçıklamaBoyut (yaklaşık)
android.jarDerleme için Android API kitaplıkları50–120 MB
System ImageÖykünücü için OS görüntüsü600–1500 MB
Build-ToolsAPK ve AAB derleme araçları200–400 MB
Platform ResourcesSistem kaynakları (temalar, stiller)30–80 MB
SkinsÖykünücü için cihaz profilleri10–50 MB

API Level ve SDK Platform Sürümleri

API Level, Android SDK sürümünün tam sayı tanımlayıcısıdır. Her Android sürümü, tek yönlü olarak artan bir API Level'e karşılık gelir. Geliştirici, API Level'i build.gradle'daki üç ana parametrede belirtir: compileSdk, minSdk ve targetSdk. Bu parametrelerin seçimi, hangi API'lerin kullanılabilir olduğunu ve sistemin uygulamayı nasıl işlediğini belirler.

Google, minSdk'nin mevcut dağıtım eşiğinden düşük olmamasını önerir — Android Studio Distribution Dashboard (2026)'a göre, cihazların yaklaşık %95'i Android 8.0 (API 26) ve üzerinde çalışmaktadır. compileSdk en son kararlı sürüm olmalıdır — bu, yeni API'lere erişim sağlar ve lint kontrollerinin eski yöntemleri tespit etmesine izin verir.

API Level'in Evrimi: Önemli Değişiklikler

Her yeni API Level ile Google önemli değişiklikler getirir. Android 6.0 (API 23), çalışma zamanı izinlerini ekledi — uygulama, kurulum sırasında değil, çalıştırma sırasında izin ister. Android 8.0 (API 26), otomatik doldurma formlarını ve bildirim kanallarını tanıttı. Android 12 (API 31), intent'lere yaklaşımı kökten değiştirdi — SplashScreen API ve exported özniteliği aracılığıyla bileşen dışa aktarma geldi. Android 14 (API 34), BroadcastReceiver için bayrak belirtmeyi zorunlu hale getirdi ve ön plan hizmetlerine katı kısıtlamalar getirdi.

API Level'lerin tarihini anlamak, geliştiricinin doğru uyumluluk stratejisini seçmesine yardımcı olur. Uygulama compileSdk 35 kullanıyor ancak minSdk 26 ise, kod Build.VERSION.SDK_INT aracılığıyla sürüm kontrolünden sonra yalnızca API 35 yöntemlerini çağırabilir. Bu yaklaşıma sürüm kontrollü geliştirme denir ve bir endüstri standardıdır.

AndroidAPIYılÖnemli Yenilik
6.0 Marshmallow232015Çalışma zamanı izinleri
8.0 Oreo262017Bildirim kanalları, Otomatik doldurma
10292019Scoped Storage, Koyu tema
12312021SplashScreen, exported özniteliği
14342023Broadcast bayrakları, Ön plan hizmetleri

SDK Manager: Kurulum ve Yapılandırma

SDK Manager, Android SDK bileşenlerini yönetmek için bir araçtır: yeni SDK Platform yükleme, mevcut olanları güncelleme ve eskilerini kaldırma. SDK Manager, Android Studio'da grafik arayüz olarak ve sdkmanager aracılığıyla komut satırı aracı olarak kullanılabilir. SDK Manager'ın komut satırı, grafik arayüzü olmayan CI/CD boru hatlarında kullanım için uygundur.

SDK Manager, platformları Android SDK dizinine yükler. Varsayılan olarak Linux ve macOS'ta $HOME/Android/Sdk, Windows'ta %LOCALAPPDATA%\Android\Sdk konumundadır. platforms dizini içinde android-{API Level} adlı klasörler bulunur ve her biri eksiksiz SDK Platform'u içerir.

sdkmanager ile SDK Platform Yükleme

sdkmanager komutu, "platforms;android-{API}" biçiminde bir paket tanımlayıcısı kabul eder. Örneğin, SDK Platform 35'i yüklemek için komut şöyledir:

bash
# API Level 35 için SDK Platform'u yükle
sdkmanager "platforms;android-35"

# Tek komutla birden fazla platform yükle
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"

# Yüklü platformları listele
sdkmanager --list_installed | grep platforms

# Eski platformu kaldır
sdkmanager --uninstall "platforms;android-28"

Gradle ile Otomatik Kurulum

Modern Android projeleri, ilk derlemede otomatik olarak SDK Platform'u yükleyebilen Gradle Plugin'i kullanır. Bunu yapmak için build.gradle'da compileSdk belirtilmeli ve yerel yapılandırmaya SDK dizini eklenmelidir. Android Studio ayrıca bir proje açarken eksik platformu yüklemeyi önerir — Gradle senkronizasyon penceresindeki "Install SDK Platform" düğmesine tıklamanız yeterlidir.

SDK Manager aracılığıyla SDK Platform'u düzenli olarak güncellemek önemlidir — platformla birlikte Build-Tools ve Platform-Tools da güncellenir, bu da derleme performansını ve hata ayıklama kararlılığını etkiler. Google, özellikle Google Play'de yeni bir uygulama sürümü yayınlamadan önce her 2-3 haftada bir SDK güncellemelerini kontrol etmeyi önerir.

Öykünücü için Sistem Görüntüsü Ayarlama

Öykünücüyü belirli bir API Level ile çalıştırmak için aynı sürümün System Image'ini yüklemek gerekir. SDK Manager, farklı mimarilerin (x86_64, arm64-v8a) ve türlerin (Google APIs, Google Play, AOSP) görüntülerini indirmeye izin verir. Görüntü indirildikten sonra AVD Manager, buna dayalı bir sanal cihaz oluşturur.

bash
# API 35 için Google APIs ile System Image yükle
sdkmanager "system-images;android-35;google_apis;x86_64"

# Komut satırı üzerinden AVD oluştur
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"

# Oluşturulan AVD'leri listele
avdmanager list avd

Gradle'da compileSdk, targetSdk ve minSdk

build.gradle'daki üç parametre, uygulamanın SDK Platform ile nasıl çalıştığını tanımlar. compileSdk, derleme için kullanılan API Level'dir. Bu parametre, kodda hangi Android API sınıflarının kullanılabileceğini belirtir. compileSdk, üçü arasında en yeni olmalıdır ve çalışma zamanı davranışını etkilemez — uygulama derlenir ancak yalnızca cihazda bulunan API'leri kullanır.

minSdk, uygulamanın yüklenebileceği minimum API Level'dir. Google Play, minSdk'den düşük sürüme sahip bir cihaza uygulamanın yüklenmesine izin vermez. Bu parametre, uyumluluk eşiğini tanımlar ve kitle kapsamını etkiler. minSdk ne kadar düşükse, o kadar fazla cihaz desteklenir, ancak kontroller olmadan o kadar az yeni API kullanılabilir.

targetSdk, uygulamanın test edildiği API Level'dir. Android sistemi, davranış değişikliklerini uygulamak için targetSdk kullanır: uygulama yeni bir API Level'e güncellenmezse, sistem eski sürümler için uyumluluk modunu etkinleştirir. Google Play, targetSdk'nin belirli bir seviyeden düşük olmamasını gerektirir — 2026 itibarıyla bu API 34'tür (Android 14).

Gradle Yapılandırma Örneği

groovy
android {
    compileSdk 35

    defaultConfig {
        applicationId "com.example.app"
        minSdk 26
        targetSdk 35
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
}

// Android SDK sürümü SDK Manager aracılığıyla yüklenmelidir
// sdkmanager "platforms;android-35"

compileSdk, minSdk ve targetSdk Nasıl Seçilir

Seçim stratejisi proje hedeflerine bağlıdır. Yeni bir uygulama için: compileSdk — en son kararlı (2026 başında 35), minSdk — API 26 (Android 8.0, cihazların %95'ini kapsar), targetSdk — en son kararlı. Mevcut bir uygulamayı güncellemek için: compileSdk hemen yükseltilmeli, targetSdk — tüm davranış değişiklikleri test edildikten sonra, minSdk — yalnızca eski cihazlar için desteğin bırakılması gerektiğinde.

Google, yeni bir Android sürümünün yayınlanmasından sonraki bir yıl içinde targetSdk'nin güncellenmesini gerektirir. Bu gereksinimi karşılamayan uygulamalar Google Play'de güncelleme yayınlayamaz. Son tarihleri takip etmek için resmi Android OS güncelleme takvimini kullanın.

ParametreAmaçÖneri
compileSdkDerleme için API sürümüEn son kararlı
minSdkDesteklenen minimum sürüm%95 kapsama için API 26
targetSdkDavranış değişiklikleri için sürümEn son kararlı + test

Kodda SDK Platform ile Çalışma Örnekleri

Farklı Android sürümleri için geliştirme yaparken, API kullanılabilirliğini dikkate almak gerekir. Uygulama compileSdk 35 kullanıyor ancak API 31 olan bir cihazda çalışıyorsa, API 34'te eklenen yöntemleri çağırmak NoSuchMethodError veya AbstractMethodError ile sonuçlanır. Yeni API'leri güvenli bir şekilde çağırmak için Build.VERSION.SDK_INT aracılığıyla sürüm kontrolleri kullanılır.

Çalışma Zamanında API Level Kontrolü

kotlin
class FeatureChecker {
    fun registerNotificationChannel(context: Context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            // Bildirim kanalları API 26'dan itibaren kullanılabilir
            val channel = NotificationChannel(
                "updates",
                "Güncellemeler",
                NotificationManager.IMPORTANCE_DEFAULT
            )
            val manager = context.getSystemService(NotificationManager::class.java)
            manager.createNotificationChannel(channel)
        }
    }
}

@RequiresApi ile Yeni API'leri Kullanma

Yalnızca belirli sürümlerde çağrılan yöntemler için @RequiresApi ek açıklamasını kullanın. Bu, lint kontrollerine yöntemin güvenli olduğunu bildirir ve uyarıları devre dışı bırakır. SDK_INT kontrolü ile birleştirildiğinde, ek açıklama kodu daha temiz ve inceleyenler için daha anlaşılır hale getirir.

kotlin
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
    // API 34: SCHEDULE_EXACT_ALARM bayrağıyla scheduleExact
    if (manager.canScheduleExactAlarms()) {
        manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
    } else {
        // SCHEDULE_EXACT_ALARM iznini iste
        val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
        context.startActivity(intent)
    }
}

fun safeScheduleAlarm(context: Context, triggerTime: Long) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
        scheduleExactAlarm(getAlarmManager(context), triggerTime)
    } else {
        // İzin kontrolü olmadan eski setExact yöntemi
        getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
    }
}

Yüklü SDK Platform'unu Belirleme

Bazen geliştiricinin cihazında veya CI'da hangi SDK Platform sürümünün yüklü olduğunu bilmek gerekir. Bu, ADB aracılığıyla veya programlı olarak uygulama kodunda yapılabilir. Cihazın API Level'ini bilmek, sürüme özgü davranışları test ederken yardımcı olur.

kotlin
fun logDeviceInfo() {
    with (Build.VERSION) {
        Log.d("SDK_Demo", "SDK_INT: $SDK_INT")
        Log.d("SDK_Demo", "RELEASE: $RELEASE")
        Log.d("SDK_Demo", "CODENAME: $CODENAME")
        Log.d("SDK_Demo", "PREVIEW_SDK_INT: $PREVIEW_SDK_INT")
    }
    // Çıktı: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}

Sıkça Sorulan Sorular

SDK Platform ile Android Studio arasındaki fark nedir?

Android Studio bir IDE'dir, SDK Platform ise derleme için bir kitaplık ve araç setidir. Studio, uygulamaları oluşturmak için SDK Platform'u kullanır, ancak platformlar SDK Manager aracılığıyla ayrı olarak indirilir ve Studio sürümünden bağımsız olarak güncellenebilir.

Kaç tane SDK Platform yüklemeliyim?

Genellikle üç sürüm yeterlidir: en son (compileSdk), minimum (minSdk) ve test için bir ara sürüm. SDK Manager, gerektiğinde platformları kolayca eklemeye ve kaldırmaya izin verir. Geliştiriciler ortalama olarak çalışma makinelerinde 3-5 platform bulundurur.

Yeni API'ler için eski bir SDK Platform kullanabilir miyim?

Hayır. Her SDK Platform yalnızca kendi sürümünün API'sini içerir. API 35'teki yöntemleri çağırmak için android-35 platformuna ihtiyacınız vardır. Eski bir platform yüklüyken yeni bir compileSdk belirtmek derleme hatasına neden olur.

SDK Platform güncellemeleri nedir?

Google, her sürüm için SDK Platform güncellemeleri yayınlar: hata düzeltmeleri, yeni API'ler, performans iyileştirmeleri. SDK Manager mevcut güncellemeler hakkında bildirimde bulunur. Kararlı derlemeler için platformun en son sürümünün yüklenmesi önerilir.

SDK Platform diskte nerede saklanır?

Varsayılan olarak, her SDK Platform Android/Sdk/platforms/android-{API} dizininde 200-800 MB yer kaplar. Klasörün içinde android.jar, kaynakları içeren bir data klasörü ve öykünücü ile derleme sistemi için yapılandırma dosyaları bulunur.

Özet

  • SDK Platform — belirli bir API Level'ine karşılık gelen belirli bir Android sürümü için kitaplık ve araç seti.
  • API Level — kullanılabilir sınıfları, yöntemleri ve sistem davranışını tanımlayan sayısal bir tanımlayıcı.
  • SDK Manager — GUI veya komut satırı aracılığıyla SDK Platform, System Images ve Build-Tools'u yüklemek ve güncellemek için bir araç.
  • build.gradle'daki compileSdk, minSdk ve targetSdk parametreleri, derleme ve uyumluluk için platform sürümünü yönetir.
  • Eski cihazlarda yeni API'leri çağırmak için Build.VERSION.SDK_INT kontrolleri ve @RequiresApi ek açıklamasını kullanın.
  • Google, Google Play'de yayınlamak için yeni bir Android sürümünün yayınlanmasından sonraki bir yıl içinde targetSdk'nin güncellenmesini gerektirir.
  • SDK Manager aracılığıyla düzenli SDK Platform güncellemeleri, yeni API'lere, düzeltmelere ve performans iyileştirmelerine erişim sağlar.

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