Android API Seviyelerini Anlamak ve min/target/compile SDK'yı Nasıl Seçeceğiniz

Kerem Aydın·6 Temmuz 2026·⏱3 dk

API level, Android sürümünün sayısal etiketidir. Kısaca: minSdk uygulamanın hangi cihazlara kurulacağını belirler; targetSdk sisteme uygulamanın hangi davranış değişikliklerine hazır olduğunu söyler; compileSdk kodu hangi API'lerle derlediğinizi belirtir (compileSdk >= targetSdk). 2026'nın pratik kuralı: minSdk — hedef kitle/bağımlılıklara göre (genellikle >=21), targetSdk — Google Play'in gerektirdiği son sürüm veya en son stabil sürüm, compileSdk — targetSdk'dan düşük olmamalıdır.

API level nedir ve neden gereklidir

API level, platform API'lerinin setini (sınıflar, manifest özellikleri, izinler vb.) benzersiz şekilde tanımlayan bir tam sayıdır. Sistem ve mağaza bunu uyumluluk kontrolü ve uygulamalara davranış değişiklikleri uygulamak için kullanır. Gradle'de bu değerler minSdk, targetSdk ve compileSdk olarak ayarlanır.

API level bir yayın adı değildir (örneğin, Android 14) — ancak her Android sürümüne karşılık gelen bir API level vardır.

minSdk, targetSdk, compileSdk — özete indirgenmiş hali

  • minSdk — desteklenen minimum seviye: bunun altındaki cihazlara uygulama kurulmaz. Kullanıcı istatistiklerine ve kütüphane gereksinimlerine göre seçin.
  • targetSdk — uygulamanın optimize edildiği seviye; eşleştiğinde veya aştığında sistem yeni davranış kurallarını uygular. Play Console yükleme için minimum bir targetSdk gerektirebilir.
  • compileSdk — projeyi derlediğiniz SDK; derleme sırasında API imzalarına erişim sağlar. Genellikle en son stabil SDK seçilir.

Örnek konfigürasyon (Gradle Kotlin DSL):

android {
    compileSdk = 36
    defaultConfig {
        minSdk = 21
        targetSdk = 35
    }
}

Değerleri nasıl seçeceğiniz ve güvenli bir şekilde yükseltmeniz — adım adım

  1. Veri toplayın: Play Console veya ürün analitiğinden cihaz istatistiklerini alın.
  2. Bağımlılıkları kontrol edin: birçok kütüphane minSdk ≥ 21 gerektirir. Temel kütüphanelerin seçilen minSdk'yı desteklediğinden emin olun.
  3. minSdk'yı "kapsama ↔ destek maliyeti" dengesiyle seçin. Eşiğin altındaki kullanıcılar %1–2'den azsa, minSdk'yı yükseltin.
  4. targetSdk'yı seçin: en son stabil sürümü veya Play gereksinimini hedef alın. Güncellemeyi aşamalı olarak planlayın (örneğin, 33 → 34 → 35).
  5. target'ı değiştirmeden önce: compileSdk >= targetSdk olacak şekilde ayarlayın, bağımlılıkları ve AGP'yi güncelleyin, projeyi derleyin ve hataları düzeltin.
  6. Test edin: minSdk'da, birkaç ara sürümde ve hedef seviyede test yapın. İzinleri, arka plan işlerini, bildirimleri, dosya sistemini ve yerel kütüphaneleri kontrol edin.
  7. Aşamalı yayına (staged rollout) bırakın, çökmeleri ve metrikleri izleyin.

target'ı kademeli olarak değiştirin ve kritik değişiklikler için feature flags/rollout kullanın — bu büyük regresyon riskini azaltır.

SDK Yükseltirken Kontrol Listesi

  • compileSdk = targetSdk olarak güncelleyin.
  • Android Gradle Plugin'i ve bağımlılıkları güncelleyin.
  • lint'i çalıştırın, uyarıları düzeltin.
  • Temel API seviyelerinde unit/integration/UI testlerini çalıştırın.
  • Play'e aşamalı yayınlama ile yükleyin ve raporları inceleyin.

Sık Yapılan Hatalar

  • compileSdk'yı güncellemeden target'ı yükseltmek → derleme hataları.
  • Eski sürümlerde test etmemek → çalışma zamanı çökmeleri.
  • Manifest'te maxSdkVersion kullanmak — gelecekteki cihazlarda kurulumu engeller.
  • MinSdk'yı aniden yükselten eski kütüphanelere güvenmek.

Google Play periyodik olarak minimum targetSdk gereksinimini artırır; güncellemezseniz yeni APK/AAB yüklemeniz reddedilebilir.

SSS

  • targetSdk'yı her zaman en son sürüme ayarlamak gerekir mi?
    Evet, eğer test yapmaya ve davranış değişikliklerini düzeltmeye hazırsanız. Aksi takdirde Play gereksinimine uyun ve kademeli geçiş planlayın.
  • compileSdk'yı targetSdk'dan daha düşük bir değerle derlemek mümkün mü?
    Hayır — bu derleme sırasında API eksikliğine yol açar; her zaman compileSdk ≥ targetSdk olmalıdır.
  • Önemli maliyetler olmadan eski cihazları nasıl desteklersiniz?
    AndroidX/Jetpack kullanın, yeni API'leri kullanmadan önce Build.VERSION.SDK_INT'i kontrol edin ve graceful fallback sağlayın.

Sonuç: Doğru seçilmiş minSdk/targetSdk/compileSdk, cihaz kapsama alanı ile yeni Android özelliklerini kullanma yeteneği arasında bir dengedir. Güncellemeleri planlayın, aşamalı olarak test edin ve Play gereksinimlerini takip edin. İsterseniz Gradle dosyanızı kontrol edebilir ve spesifik bir güncelleme planı önerebilirim.