API seviyelerini anlamak ve minSdkVersion'u pratik olarak seçmek
Kısa cevap: API Level, Android API setinin sayısal tanımlayıcısıdır; "seviye 2", çok eski ve artık kullanılmayan bir Android sürümüdür; minSdkVersion, cihaz kapsamı ile destek maliyetleri arasında denge kurarak, kullanıcı istatistiklerine ve kütüphane gereksinimlerine dayanarak seçilir.
API seviyesi nedir ve neden gereklidir
API Seviyesi (API Level), belirli bir Android SDK sınıf ve yöntem setine karşılık gelen bir numaradır (örneğin, Android 14 → API 34). Sistem, kurulum sırasında API Seviyesini kontrol eder: cihaz minSdkVersion'dan düşükse uygulama kurulmaz. Projede üç parametre önemlidir:
- compileSdkVersion — hangi SDK üzerinde derleme yaptığınız (en son sürüm önerilir);
- targetSdkVersion — uygulamanın hangi platform davranışı için optimize edildiği;
- minSdkVersion — minimum desteklenen API (mağaza erişilebilirliğini ve kapsamı belirler).
"Seviye 2" tarihsel bir kalıntıdır (Android 1.6 öncesi). Modern araçlar, kütüphaneler ve Google Play bunu desteklemez. Bu, yayın için gerçek bir seçim değildir.
minSdkVersion nasıl seçilir: adım adım ve pratik yaklaşım
- Hedef kitlenizi belirleyin. Gerçek kullanıcılarınızın hangi Android sürümlerini kullandığını inceleyin (analitik, ülkelere göre pazar, müşteri gereksinimleri).
- Bağımlılıkları kontrol edin. Temel kütüphanelerin minimum gereksinimlerini netleştirin — bunlar genellikle alt sınırı belirler.
- Destek maliyetlerini tartın. Daha düşük minSdk → daha fazla koşullu dal, test ve hata. Eski cihazların payı küçükse, minSdk'yı yükseltmek genellikle mantıklıdır.
- Mağaza gereksinimlerine uyun. Google Play zaman zaman targetSdkVersion gereksinimlerini artırır; compile/target güncel tutulmalıdır.
- Eski cihazlarda yeni API'lerin güvenli kullanımı için AndroidX ve sürüm kontrollerini (Build.VERSION.SDK_INT) kullanın.
Örnekler:
- Kitle uygulaması: minSdkVersion ≈ API 26–28 (Android 8–9) — kapsam ve geliştirme basitliği açısından iyi bir uzlaşma.
- Cihaz parkı için B2B: Güncelleme mümkün değilse, minSdkVersion'u cihazların gerçek seviyesine eşitleyin (örneğin API 25).
- Eğitim projesi: Eskimiş API'leri açıklamamak için minSdkVersion'u yükseltebilirsiniz.
build.gradle içinde örnek blok
android {
compileSdkVersion 34
defaultConfig {
applicationId "com.example.app"
minSdkVersion 26
targetSdkVersion 34
}
}
minSdkVersion'u sabitlemeden önce veri toplayın: kullanıcılarınız arasındaki sürüm dağılımı, kütüphane gereksinimleri ve iş kısıtlamaları.
Sık yapılan hatalar
- Düşük minSdkVersion'un otomatik olarak çok sayıda yeni kullanıcı getireceğini sanmak — çoğu zaman eski cihazların payı küçüktür, ancak geliştirme karmaşıklığı ve hatalar artar.
- targetSdkVersion'u yükseltip compileSdkVersion'u değiştirmemek — compileSdk, gerekli API'lere erişim sağlamalıdır.
- Kütüphane gereksinimlerini görmezden gelmek: bir kütüphane, planladığınızdan daha yüksek bir minSdk gerektirebilir.
SSS
S: Hem düşük minSdk hem de yeni targetSdk ile her şeyi aynı anda desteklemek mümkün mü?
C: Teknik olarak evet, ancak bu koşullu kodun ve testlerin hacmini artırır. Çoğu zaman minSdk'yı, kullanıcıların çoğunu kapsayan bir seviyeye yükseltmek daha mantıklıdır.
S: Bir kütüphane benimkinden daha yüksek minSdk gerektiriyorsa ne yapmalıyım?
C: Ya minSdk'yı yükseltin ya da kütüphaneyi değiştirin/işlevselliği kendiniz uygulayın.
S: Her eski sürüm için ayrı test gerekli mi?
C: Kritik senaryoları temsilci sürümlerde test edin (minimum desteklenen ve birkaç popüler sürüm); emülatörler ve bulut çiftlikleri nadir cihazları kapsamaya yardımcı olur.
Sonuç: Gerçek hedef kitle verilerine ve bağımlılıklara odaklanın — minSdkVersion, kapsam ile destek maliyeti arasında haklı bir uzlaşma olmalıdır; compile/target ise yeni Android sürümlerinde doğru davranış için güncel tutulmalıdır.