Uygulamanızı Android 15'e hızlı ve güvenli bir şekilde nasıl hazırlarsınız
Android 15, API seviyesi 35'tir. Uygulamayı hazırlamak için: compileSdk'i 35'e güncelleyin, ardından targetSdk'i aşamalı olarak 35'e yükseltin, AGP/Gradle/bağımlılıkları güncelleyin ve Android 15 yüklü cihazlarda davranış değişikliklerini ve testleri çalıştırın.
Android 15 API seviyesi nedir ve neden önemlidir?
API seviyesi, platformun sayısal etiketidir. Android 15 (API 35), bu seviyeyi hedef aldığınızda devreye giren yeni API'ler, güvenlik kısıtlamaları ve davranış değişiklikleri getirir. compileSdk = 35, yeni sınıflara ve imzalara erişim sağlar; ancak uygulamanın eski cihazlardaki davranışı targetSdk ve çalışma zamanı tarafından belirlenir. Google Play, zamanla çok eski API'leri hedefleyen uygulama güncellemelerini kabul etmeyi bırakır; bu nedenle güncelleme bir seçenek değil, bir zorunluluktur.
Android 15'e geçiş planlamasını beta/RC aşamasında yapın; bu, davranış değişikliklerini yakalamak ve bağımlılıkları güncellemek için size zaman kazandırır.
Dikkat edilmesi gerekenler: temel uyumluluk alanları
- İzinler ve gizlilik: Yeni çalışma zamanı kuralları, arka plan verilerine ve sensörlere sınırlı erişim. Tüm izin isteklerini ve reddetme senaryolarını kontrol edin.
- Arka plan işlemleri: Servisler ve arka plandan etkinlik başlatma konusunda ek sınırlamalar; ForegroundService, WorkManager ve JobScheduler'ı gözden geçirin.
- Depolama ve medya içeriği: scoped storage için ek kısıtlamalar, SAF ve medya kütüphanesi erişimindeki değişiklikler.
- Bildirimler: Henüz uygulanmadıysa, bildirim gösterme izni isteğini ekleyin ve kanalları/öncelikleri güncelleyin.
- Gizli API'ler: Yansıma ve non-SDK arayüzlerine yapılan çağrılar daha sık çökmelere yol açacaktır; bunları resmi API'lerle değiştirin.
En büyük hata, "hiçbir şey bozulmasın" diye targetSdk'i eski seviyede bırakmaktır. Bu sadece sorunları erteler ve geçişi zorlaştırır.
compileSdk ve targetSdk güncelleme adımları
- Altyapının hazırlanması
- Android Studio'yu Android 15 SDK'yı destekleyen sürüme güncelleyin.
- Android Gradle Plugin (AGP) ve Gradle wrapper'ı AGP ile uyumlu sürümlere güncelleyin.
- Kotlin, AndroidX (core-ktx, appcompat, activity, fragment, lifecycle vb.), Google Play/Firebase ve test kütüphanelerini güncelleyin.
Geçiş işlemi için VCS'de ayrı bir dal oluşturun; bu, değişiklikleri güvenle test etmenize ve geri almanıza olanak tanır.
- compileSdk → 35 güncellemesi
- module build.gradle.kts dosyasında:
android {
compileSdk = 35
}
- Tüm derleme hatalarını düzeltin (değişen imzalar, yeni zorunlu parametreler). Henüz targetSdk'i yükseltmeyin; önce derlemeyi düzeltin.
- targetSdk → 35 yükseltmesi ve davranış değişikliklerinin ele alınması
- defaultConfig içinde:
defaultConfig {
targetSdk = 35
}
- Resmi davranış değişikliklerini gözden geçirin: bir kontrol listesi oluşturun (izinler, arka plan görevleri, depolama, bildirimler, WebView).
- Çalışma zamanı kontrollerini uygulayın:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { /* API 35 */ }
- Yeni çalışma zamanı izinlerinin işlenmesini ve eski sürümler için fallback mantığını güncelleyin.
-
Test etme
- Play Console'da internal/closed test yollarını kullanın.
- Gerçek cihazlar ve Android 15 emülatörleriyle test uzmanlarından destek alın.
- Senaryoları çalıştırın: ilk kurulum, önceki sürümlerden güncelleme, uzun süreli arka plan çalışması, satın alma/ödeme senaryoları.
-
Eski sürümlerin desteklenmesi
- Yeni API'lerin kullanıldığı yerlerde her zaman Build.VERSION.SDK_INT kontrolleri yapın ve güvenli fallback sağlayın.
- Eski sürümlerde bulunmayan yeni izinleri istemeyin.
build.gradle.kts için minimum güncelleme seti örneği:
plugins { id("com.android.application") version "X.Y.Z" }
android {
compileSdk = 35
defaultConfig {
applicationId = "com.example.app"
minSdk = 21
targetSdk = 35
versionCode = 123
versionName = "1.2.3"
}
// other config
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.0")
// update other libs
}
Sık yapılan hatalar
- "Hiçbir şey bozulmaz" umuduyla targetSdk yükseltmesini ertelemek.
- AGP/Gradle ve kütüphaneleri güncellemeden targetSdk'i güncellemek; bu, derleme ve çalışma zamanı hatalarına yol açar.
- Güncelleme senaryolarının testlerini atlamak (özellikle veri ve izin geçişleri).
- Resmi alternatifler yerine gizli API'leri kullanmak.
SSS
-
Önce compileSdk mi yoksa targetSdk mi değiştirilmeli?
- Önce compileSdk → 35, derlemeyi düzeltin ve deprecated uyarılarını giderin, ardından targetSdk'i yükseltin ve davranış değişiklikleriyle ilgilenin.
-
Eski Android kullanıcılarının zarar görmeyeceğinden nasıl emin olunur?
- Yeni API'leri sürüm kontrolleri ve fallback uygulamalarıyla kapsayın; minSdk…targetSdk-1 aralığındaki cihazlarda test edin.
-
API 35'i desteklemeyen kütüphanelerle ne yapılmalı?
- Bunları güncel sürümlere yükseltin; güncelleme mümkün değilse kütüphaneyi değiştirin veya forklayın, ya da sorun çözülene kadar target yükseltmesini erteleyin.
İsterseniz, hangi bağımlılıkların öncelikle güncellenmesi gerektiğine dair notlarla birlikte belirli bir yığın kombinasyonu (Kotlin + Jetpack + Firebase) için detaylı bir build.gradle.kts dosyası hazırlayabilirim.