Android Sürümleri ve API Seviyesi Özet Tablosu (1.5–14+)
Kısa cevap: API Seviyesi, platformun sayısal tanımlayıcısıdır. Örnek eşleşmeler: Android 1.5 — API 3 (Cupcake), Android 4.4 — API 19 (KitKat), Android 10 — API 29, Android 13 — API 33, Android 14 — API 34. Aşağıda kullanışlı bir tablo ve kullanım için pratik ipuçları yer almaktadır.
Sürüm, API Seviyesi ve Kod Adı Eşleşme Tablosu
Android Sürümleri ve API Seviyesi İçin Kullanışlı Eşleşme Tablosu
| Android Sürümü | API Seviyesi | Kod Adı | SDK Etiketi |
|---|---|---|---|
| 1.5 | 3 | Cupcake | android-3 |
| 1.6 | 4 | Donut | android-4 |
| 2.0 | 5 | Eclair | android-5 |
| 2.0.1 | 6 | Eclair | android-6 |
| 2.1 | 7 | Eclair | android-7 |
| 2.2 | 8 | Froyo | android-8 |
| 2.3–2.3.2 | 9 | Gingerbread | android-9 |
| 2.3.3–2.3.7 | 10 | Gingerbread | android-10 |
| 3.0 | 11 | Honeycomb | android-11 |
| 3.1 | 12 | Honeycomb | android-12 |
| 3.2 | 13 | Honeycomb | android-13 |
| 4.0–4.0.2 | 14 | Ice Cream Sandwich | android-14 |
| 4.0.3–4.0.4 | 15 | Ice Cream Sandwich | android-15 |
| 4.1.x | 16 | Jelly Bean | android-16 |
| 4.2.x | 17 | Jelly Bean | android-17 |
| 4.3.x | 18 | Jelly Bean | android-18 |
| 4.4 | 19 | KitKat | android-19 |
| 4.4W (Wear) | 20 | KitKat (Wear) | android-20 |
| 5.0 | 21 | Lollipop | android-21 |
| 5.1 | 22 | Lollipop | android-22 |
| 6.0 | 23 | Marshmallow | android-23 |
| 7.0 | 24 | Nougat | android-24 |
| 7.1 | 25 | Nougat | android-25 |
| 8.0 | 26 | Oreo | android-26 |
| 8.1 | 27 | Oreo | android-27 |
| 9 | 28 | Pie | android-28 |
| 10 | 29 | Android 10 | android-29 |
| 11 | 30 | Android 11 | android-30 |
| 12 | 31 | Android 12 | android-31 |
| 12L | 32 | Android 12L | android-32 |
| 13 | 33 | Android 13 | android-33 |
| 14 | 34 | Android 14 | android-34 |
| 15 (önizleme / ayrılmış) | 35+ | Android 15 (önizleme) | android-35 (önizleme) |
minSdkVersion/targetSdkVersion/compileSdkVersion ayarlarını yaparken bu tabloyu yanınızda bulundurun; uyumluluğu anlamak için pazarlama adından ziyade API numarasına bakmak daha kolaydır.
Tablonun Pratikte Nasıl Uygulanacağı
- Gradle yapılandırmasında: minSdkVersion değerini API'ye göre belirtin (örneğin, minSdkVersion 21, Android 5.0 Lollipop ve üzeri destek anlamına gelir). targetSdkVersion ve compileSdkVersion değerlerini son kararlı API veya hedeflediğiniz API ile aynı olacak şekilde kullanın.
- Android Studio'da AVD seçerken: Tüm pazarlama adlarına göre değil, her önemli API aralığı için en az bir cihaz seçin.
- Dokümantasyonu okurken: Belirli bir işlev için gerekli API Seviyesini kontrol edin (@RequiresApi(21) gibi ek açıklamalar API'yi gösterir).
Cihazın pazarlama adına güvenmeyin: özel ROM'lar "Android X" dizesini değiştirebilir, ancak sistemdeki API seviyesi, desteklenen API'ler için tek güvenilir göstergedir.
Öneriler ve Sık Yapılan Hatalar
- Dokümantasyonda hem pazarlama sürümünü hem de API Seviyesini her zaman birlikte belirtin.
- compileSdkVersion güncellerken platformun sürüm notlarında kırıcı değişiklikleri ve kullanımdan kaldırılanları kontrol edin.
- Daha eski API'lere sahip hedef cihazlarda uygulamayı test etmeden minSdkVersion değerini düşürmeyin.
- Hata: Kodda API düzeyi kontrolü olmadan API işlevlerinin kullanılması — çağrıları Build.VERSION.SDK_INT kontrolleri veya ek açıklamalarla koruyun.
Sık Yapılan Hatalar
- targetSdkVersion ve compileSdkVersion karıştırılması (bunlar minSdkVersion'a eşit değildir).
- Uyumluluk analizi yapılırken API Seviyesi yerine pazarlama adına odaklanılması.
- Temel API aralıkları için gerçek cihazlarda/emülatörlerde testlerin yapılmaması.
SSS
- Cihazdaki API Seviyesi nasıl öğrenilir? — Ayarlarda: Telefon hakkında → Yazılım bilgisi → API Seviyesi/yapı numarası; programatik olarak — Build.VERSION.SDK_INT.
- API 30'daki bir işlev API 29 olan bir cihazda kullanılabilir mi? — Polyfill'ler veya koşullu kontroller olmadan hayır: işlev mevcut olmayacaktır.
- Önizleme API'si nedir? — Yeni özellikleri test etmek için kullanılan API'nin ön sürümüdür; üretim ortamında gerekmedikçe compile/target olarak kullanılmamalıdır.
Gerekirse, tablonun CSV sürümünü hazırlayabilirim veya ekip içi dokümantasyon için bir dosya halinde paketleyebilirim.