Geliştiriciler İçin Android 14 Yeniliklerine Kısa Bir Bakış
Android 14 (API 34), gizlilik ve arka plan senaryolarını sıkılaştırıyor; medya erişiminde daha granüler izinler, foreground servisleri ve bildirimler için katı gereksinimler getiriyor. İlk adım olarak targetSdk sürümünü 34'e yükseltin ve Android 14 yüklü bir cihazda temel senaryoları test edin.
Davranışı "bozabilecek" temel değişiklikler
- Yeni medya izni granülasyonu ve tek tek dosya seçimi: Onaydan sonra galeriye tam erişim beklemeyin. Okuma işleminden önce Uri erişilebilirliğini her zaman kontrol edin.
- Arka plan kısıtlamaları: Konum, sensörler ve bazı medya işlemleriyle ilgili operasyonlar, geçerli bir foreground servisi veya job olmadan aktif kullanıcı arayüzü dışında yasaktır.
- Foreground servisleri: Servis kategorisini (medya, konum, dataSync vb.) doğru şekilde belirtmeniz gerekir; her şey için kullanılan genel amaçlı FGS'ler risk taşır.
- Arka plandan aktivite başlatma büyük ölçüde kısıtlanmıştır; kullanıcı arayüzü yalnızca kullanıcının açık eylemiyle başlatılmalıdır.
- Paket görünürlüğü ve kurulum: Yüklü uygulamaların taranması ve sideload (yan yükleme) artık ek bildirimler gerektirir; eski targetSdk sürümleri engellenebilir.
- Scoped Storage ve dosya işlemleri: Yollara doğrudan erişim için daha az olanak, MediaStore ve SAF aracılığıyla daha fazla olanak sunuluyor.
Kodunuz varsayılan olarak medyaya "kalıcı" erişim bekliyorsa bozulacaktır. Kısmi erişim ve kullanıcının reddetme durumları için UX hazırlayın.
Pratik öneriler ve somut adımlar
- Derleme güncellemesi
- targetSdkVersion = 34 olarak ayarlayın, Android 14 emülatörü/gerçek cihazında testleri derleyip çalıştırın.
- Medya ve dosyalar
- İşlemleri MediaStore ve Storage Access Framework'e taşıyın; SAF kullanırken takePersistableUriPermission değerini kaydedin ve doğrulayın.
- Dosyalara ait "ham" yolları önbelleğe almayın; Uri'leri tutun ve iptal edilmelerini doğru şekilde yönetin.
- Arka plan çalışmaları
- Arka plan görevleri için WorkManager / JobScheduler kullanın; foreground servisini yalnızca doğru kategori ve gerekçelendirme ile uygulayın.
- Hassas verilere erişim gerektiren periyodik taramaları erteleyin veya yeniden yapılandırın.
- Bildirimler
- Bildirim gönderme iznini, değeri açık olduğunda isteyin; ayrı kanallar ve öncelikler yapılandırın.
- Güvenlik ve paket görünürlüğü
- Manifest dosyasını queries ve explicit intent filtreleri açısından kontrol edin; yüklü uygulama listesine dayalı mantığı uyarlayın.
- Günlükleme ve tanılama
- Kritik olaylar için kendi özel günlükleyicinizi uygulayın, günlüklerde hassas verilerin saklanmasını en aza indirin.
- Test etme
- Temel senaryoları çalıştırın: izin reddi, dosyalara kısmi erişim, arka plan işlemlerinin agresif sonlandırılması, ağ değiştirme.
"WorkManager + net kategorize edilmiş foreground servisleri" stratejisi, Android 14 uyumluluğu için en güvenli yaklaşımdır.
Geçiş: Kısa Kontrol Listesi
- [ ] targetSdkVersion değerini 34 olarak değiştirin ve derlemeyi oluşturun.
- [ ] Kullanıcı arayüzünü ve arka plan senaryolarını Android 14 yüklü bir cihazda test edin.
- [ ] Dosya erişimini MediaStore/SAF üzerinden yeniden yazın; kısmi izinleri yönetin.
- [ ] Doğru bildirim kanalları ve çalışma zamanı bildirim isteği uygulayın.
- [ ] Foreground servis kategorilerini netleştirin ve mümkün olan yerlerde yanlış FGS'leri WorkManager ile değiştirin.
- [ ] Paket görünürlüğünü ve uygulama içi kurulum/güncellemeleri kontrol edin.
- [ ] Aşamalı dağıtım için geri alma planı/özellik bayrakları hazırlayın.
Sık Yapılan Hatalar
- Başlangıçta tüm izinlerin istenmesi — kullanıcının reddetme olasılığı yüksektir.
- Uri saklamak yerine dosyalara mutlak yolların önbelleğe alınması.
- Kategori belirtilmeden veya yanlış kategori ile FGS kullanılması.
- Üretim ortamında tanılama için sistem günlüklerine güvenilmesi.
SSS
- S: targetSdk sürümünü 34'e yükseltmek zorunlu mu? C: Önerilir — birçok yeni politika yalnızca targetSdk=34 olduğunda çalışır; eski targetSdk sürümleri kurulum sırasında sistem tarafından kısıtlanabilir.
- S: Fotoğraf/videoya kısmi erişim nasıl yönetilir? C: Uri erişilebilirliğini her zaman kontrol edin, kullanıcıya ek dosya seçimi için anlaşılır bir UX sunun veya tam erişimin neden gerekli olduğunu açıklayın.
- S: Tüm foreground servisleri WorkManager ile değiştirilebilir mi? C: Hayır, uzun süreli medya oynatma veya ayrıcalıklı statü gerektiren görevler için FGS'ler gerekli kalır, ancak bunların doğru kategorize edilmesi ve kullanımlarının minimize edilmesi gerekir.
Bu plan, Android 14'e geçiş için pratik bir yol haritası sunar: targetSdk güncellemesiyle başlayın, ardından medya erişimini, arka plan mantığını ve bildirimleri sırayla uyarlayın ve gerçek senaryoları API 34 yüklü cihazlarda test edin.