Google Play'in hedef API düzeyi şartını karşılayın

Bir APK yüklediğinizde bu APK'nın Google Play'in hedef API düzeyi şartlarını karşılaması gerekir.

31 Ağustos 2023'ten itibaren:

  • Yeni uygulamalar, Android 13 (API düzeyi 33) veya sonraki sürümleri hedeflemelidir. Wear OS uygulamaları, Android 11 (API düzeyi 30) ile Android 13 (API düzeyi 33) arasındaki sürümleri hedeflemesi gereken uygulamalar hariçtir.

  • Uygulama güncellemeleri Android 13 veya sonraki sürümleri hedeflemeli ve Android 13'teki davranış değişikliklerine göre ayarlama yapmalıdır. Wear OS uygulamaları ise Android 11'i hedeflemelidir.

Belirli bir kuruluştaki kullanıcılarla sınırlı olan ve yalnızca şirket içi dağıtım için tasarlanmış kalıcı olarak özel uygulamaların hedef API düzeyi şartlarını karşılaması gerekmez.

Not: 2022'den itibaren, güncel olmayan bazı uygulamalar, Android'in yeni sürümlerini çalıştıran cihazların yeni kullanıcıları tarafından kullanılamayacaktır.

Neden yeni SDK'ları hedeflemelisiniz?

Her yeni Android sürümü, güvenlik ve performans iyileştirmeleri sağlayan ve Android kullanıcı deneyimini iyileştiren değişiklikler sunar. Bu değişikliklerden bazıları yalnızca targetSdkVersion manifest özellikleriyle (hedef API düzeyi olarak da bilinir) açıkça destek veren uygulamalar için geçerlidir.

Uygulamanızın yeni bir API düzeyini hedefleyecek şekilde yapılandırılması, kullanıcıların bu iyileştirmelerden yararlanmalarını sağlar. Üstelik, uygulamanız eski Android sürümlerinde çalışmaya devam edebilir. Yeni bir API seviyesini hedeflemek, aynı zamanda uygulamanızın platformun en son özelliklerinden yararlanmasına olanak tanır. Bu da kullanıcılarınızı memnun edecektir. Ayrıca, Android 10 (API düzeyi 29) itibarıyla, uygulama Android 5.1 (API düzeyi 22) veya önceki sürümleri hedefliyorsa kullanıcılar bir uygulamayı ilk kez başlatırken bir uyarı görür.

Bu dokümanda, hedef API seviyenizi Google Play şartını karşılayacak şekilde güncellerken bilmeniz gereken önemli noktalar vurgulanmaktadır.

Alt sürümlerden taşıma işlemi gerçekleştirirken lütfen aşağıdaki değişikliklerin tam listesini inceleyin.

Not: Gradle dosyanız manifest girişleri içeriyorsa Derlemenizi yapılandırma bölümünde açıklandığı gibi, uygulamanızın Gradle dosyasındaki targetSdkVersion değerini onaylayabilir veya değiştirebilirsiniz. Alternatif olarak, <uses-sdk> manifest öğesinin dokümanlarında açıklandığı gibi manifest dosyasındaki android:targetSdkVersion özelliğini de kullanabilirsiniz.

Android 12'den (API düzeyi 31) Android 13'e (API düzeyi 33) geçiş yapın

Uygulamanızı Android 13'ü hedefleyecek şekilde güncellemek için davranış değişiklikleri listesini uygulayın.

Android 11'den (API düzeyi 30) Android 12'ye (API düzeyi 31) geçiş yapın

Güvenlik ve İzinler

Kullanıcı Deneyimi

  • Özel bildirimler: Özel içerik görünümleri içeren bildirimler artık tüm bildirim alanını kullanmayacak; bunun yerine sistem standart bir şablonu uygulamalıdır. Bu şablon, özel bildirimlerin tüm durumlarda diğer bildirimlerle aynı süslemeye sahip olmasını sağlar. Bu davranış, Notification.DecoratedCustomViewStyle özelliğinin davranışıyla neredeyse aynıdır.
  • Android Uygulama Bağlantıları doğrulamasında değişiklikler: Android Uygulama Bağlantısı doğrulamasını kullanırken amaç filtrelerinizin BROWSABLE kategorisini içerdiğinden ve HTTPS şemasını desteklediğinden emin olun.

Performans

  • Ön plan hizmeti başlatma kısıtlamaları: Android 12 veya sonraki sürümleri hedeflemek için uygulamanız birkaç özel durum dışında arka planda çalışırken ön plan hizmetlerini başlatamaz. Bir uygulama arka planda çalışırken bir ön plan hizmeti başlatmaya çalışırsa bir istisna oluşur (birkaç özel durum hariç).

    Uygulamanız arka planda çalışırken hızlandırılmış çalışma planlamak ve başlatmak için WorkManager'ı kullanabilirsiniz. Kullanıcının istediği zamana bağlı işlemleri tamamlamak için ön plan hizmetlerini tam alarm içinde başlatın.

  • Bildirim trambolin kısıtlamaları: Kullanıcılar bildirimlere dokunduğunda bazı uygulamalar, kullanıcının gördüğü ve etkileşimde bulunduğu etkinliği başlatan bir uygulama bileşenini başlatarak yanıt verir. Bu uygulama bileşeni, bildirim trambolini olarak bilinir.

    Uygulamalar, bildirim trampolizi olarak kullanılan hizmetlerden veya yayın alıcılarından etkinlik başlatmamalıdır. Kullanıcı bildirim içindeki bir bildirime veya işlem düğmesine dokunduktan sonra uygulamanız bir hizmet veya yayın alıcısının içinden startActivity() işlevini çağıramaz.

Android 12'yi (API düzeyi 31) hedefleyen uygulamaları etkileyen değişikliklerin tamamını görüntüleyin.

Android 11'den (API düzeyi 30) önceki sürümlerden taşıma

Verilerinizi taşıyacağınız kaynak Android sürümünü seçin:

Android 5'e (API düzeyi 21) geçiş

Uygulamanızın bu sürümlerde sunulan değişiklikleri hesaba kattığından emin olmak için aşağıdaki sürümlerden her biri için ilgili Davranış Değişiklikleri sayfasına bakın:

Bir sonraki bölümde bulunan talimatları izleyerek devam edin.

Android 6'ya (API düzeyi 23) geçiş

Aşağıdaki noktalar, Android 6.0 ve platformun daha yüksek sürümlerini hedefleyen uygulamalar için geçerlidir:

  • Çalışma Zamanı İzinleri

    • Tehlikeli izinler sadece çalışma zamanında verilir. Kullanıcı arayüzü akışlarınız, bu izinleri verme işlemleri için imkan sağlamalıdır.

    • Mümkün olduğunda, uygulamanızın izin isteklerinin reddedilmesini ele almaya hazır olduğundan emin olun. Örneğin, bir kullanıcı cihazın GPS'ine erişim isteğini reddederse uygulamanızın devam etmek için başka bir yolunun olduğundan emin olun.

Android 6.0'da (API düzeyi 23) başlatılan değişikliklerin kapsamlı bir listesi için platformun ilgili sürümünün Davranış Değişiklikleri sayfasına bakın.

Bir sonraki bölümde bulunan talimatları izleyerek devam edin.

Android 7'ye (API düzeyi 24) geçiş

Aşağıdaki noktalar, Android 7.0 ve platformun daha yüksek sürümlerini hedefleyen uygulamalar için geçerlidir:

  • Doz ve Uygulamayı Beklemeye Alma

    Çeşitli platform sürümlerinde başlatılan artımlı değişiklikleri kapsayan Doz ve Uygulamayı Beklemeye Alma için Optimize Etme bölümünde açıklanan davranışlara göre tasarım yapın.

    Bir cihaz Doz ve Uygulama Bekleme Modu'ndayken sistem aşağıdaki gibi davranır:

    • Ağ erişimini kısıtlar
    • Alarmları, senkronizasyonları ve işleri erteler
    • GPS ve kablosuz ağ taramalarını kısıtlar
    • Normal öncelikli Firebase Cloud Messaging mesajlarını kısıtlar.
  • İzin Değişiklikleri

    • Sistem, uygulamaya özel dizinlere erişimi kısıtlar.
    • Uygulamanızın dışında bir file:// URI'si göstermek bir FileUriExposedException tetikler. Uygulamanızın dışında dosya paylaşmanız gerekiyorsa FileProvider uygulayın
  • Sistem, NDK olmayan kitaplıklara bağlanmayı yasaklar.

Android 7.0'da (API düzeyi 24) başlatılan değişikliklerin kapsamlı bir listesi için platformun ilgili sürümünün Davranış Değişiklikleri sayfasına bakın.

Bir sonraki bölümde bulunan talimatları izleyerek devam edin.

Android 8'e (API düzeyi 26) geçiş

Aşağıdaki noktalar, Android 8.0 ve platformun daha yüksek sürümlerini hedefleyen uygulamalar için geçerlidir:

Android 8.0'da (API düzeyi 26) başlatılan değişikliklerin kapsamlı bir listesi için platformun ilgili sürümünün Davranış Değişiklikleri sayfasına bakın.

Android 8'den (API 26) Android 9'a (API 28) taşıma

Android 9.0'da (API düzeyi 28) başlatılan değişikliklerin kapsamlı bir listesi için davranış değişiklikleri bölümüne bakın.

Android 9'dan (API düzeyi 28) Android 10'a (API düzeyi 29) taşıma

Android 10'dan (API düzeyi 29) Android 11'e (API düzeyi 30) taşıma

Android 11'de (API düzeyi 30) kullanıma sunulan değişikliklerin kapsamlı bir listesi için Davranış Değişiklikleri sayfasına bakın.

Önceki bölümde verilen talimatları uygulayarak API 31'e güncellemeye devam edin.

Uygulamalarınızı modernize etme

Uygulamalarınız için hedef API seviyesini güncellediğinizde, uygulamalarınızı modernize ederek kullanıcılarınızı memnun etmek için en son platform özelliklerini kullanmayı düşünün.

  • Kameradan en iyi şekilde yararlanmak için Beta sürümünde olan KameraX'i kullanmayı düşünebilirsiniz.
  • En iyi uygulamaları hayata geçirmenize, standart kod yazmak zorunda kalmamanıza ve karmaşık görevleri basitleştirerek en iyi uygulamaları uygulamanıza yardımcı olacak Jetpack bileşenlerini kullanın. Böylece, önem verdiğiniz koda odaklanabilirsiniz.
  • Daha az kodla daha hızlı bir şekilde daha iyi uygulamalar yazmak için Kotlin'i kullanın.
  • Gizlilik şartlarına ve en iyi uygulamalara uyduğunuzdan emin olun.
  • Uygulamalarınıza koyu tema desteği ekleyin.
  • Uygulamalarınıza hareketle gezinme desteği ekleyin.
  • Uygulamanızı Google Cloud Messaging'den (GCM) son Firebase Cloud Messaging sürümüne taşıyın.
  • Gelişmiş pencere yönetiminden yararlanın.

SDK'larınızı ve kitaplıklarınızı kontrol edip güncelleme

Üçüncü taraf SDK bağımlılıklarınızın API 31'i desteklediğinden emin olun: Bazı SDK sağlayıcılar bunu manifest dosyalarında yayınlar; diğerleri ise daha fazla inceleme gerektirecektir. API 31'i desteklemeyen bir SDK kullanıyorsanız sorunu çözmek için SDK sağlayıcıyla çalışmaya öncelik verin.

Ayrıca, uygulamanızın veya oyununuzun targetSdkVersion özelliğinin özel Android platform kitaplıklarına erişimi kısıtlayabileceğini unutmayın. Ayrıntılar için Platform Kitaplıklarına Bağlanan NDK Uygulamaları konusuna bakın.

Ayrıca, kullanmakta olduğunuz Android Destek Kitaplığı sürümünde bulunabilecek kısıtlamaları da doğrulamanız gerekir. Her zaman olduğu gibi, Android Destek Kitaplığı'nın ana sürümü ile uygulamanızın compileSdkVersion sürümü arasında uyumluluğun sağlanması gerekir.

Destek Kitaplığı'nın ana sürümüyle aynı veya ondan daha eski bir targetSdkVersion seçmenizi öneririz. En son uyumluluk özelliklerinden ve hata düzeltmelerinden yararlanmak için yakın zamanda yayınlanmış uyumlu bir Destek Kitaplığı'na güncelleme yapmanızı öneririz.

Uygulamanızı test etme

Uygulamanızın API seviyesini ve özelliklerini uygun şekilde güncelledikten sonra, bazı temel kullanım durumlarını test etmeniz gerekir. Aşağıdaki öneriler her durumu içermez, sadece test sürecinize rehberlik etmek için verilmiştir. Test yaparak aşağıdakilerden emin olmanızı öneririz:

  • Uygulamanız hata veya uyarı olmadan API 29'a derleme yapıyor.
  • Uygulamanızda, kullanıcının izin isteklerini reddettiği ve kullanıcıdan izin istendiği durumlara ilişkin bir strateji uyguluyor. Bunun için:
    • Uygulamanızın Uygulama Bilgileri ekranına gidin ve her bir izni devre dışı bırakın.
    • Uygulamayı açın ve kilitlenme olmadığından emin olun.
    • Temel kullanım durumu testlerini gerçekleştirin ve gerekli izinlerin tekrar istendiğinden emin olun.

  • Doz'u, hiç hata olmadan beklenen sonuçlarla uyguluyor.
    • Adb'yi kullanarak, uygulamanız çalışırken test cihazınızı Doz'a yerleştirin.
      • Firebase Cloud Messaging mesajları tetikleyen kullanım durumlarını test edin.
      • Alarmlar veya İşler kullanan kullanım durumlarını test edin.
      • Arka plan hizmetlerine olan bağımlılıkları ortadan kaldırın.
    • Uygulamanızı, Uygulamayı Beklemeye Alma moduna ayarlayın
      • Firebase Cloud Messaging mesajları tetikleyen kullanım durumlarını test edin.
      • Alarmlar veya İşler kullanan kullanım durumlarını test edin.

  • Çekilen yeni fotoğrafları / videoları işliyor
    • Uygulamanızın kısıtlanmış ACTION_NEW_PICTURE ve ACTION_NEW_VIDEO yayınlarını doğru şekilde işlediğinden (yani JobScheduler işlerine taşındığından) emin olun.
    • Bu etkinliklere bağlı olan kritik kullanım durumlarının hala çalıştığından emin olun.
  • Diğer uygulamalarla dosya paylaşma işlemlerini yapıyor
    • Başka herhangi bir uygulama (aynı geliştirici tarafından başka bir uygulama da olabilir) ile dosya verilerini paylaşan kullanım durumlarını test edin
    • İçeriğin diğer uygulamada görünür olup olmadığını ve kilitlenme tetikleyip tetiklemediğini test edin.

Daha fazla bilgi

Size aylık iş ortağı bültenimiz dahil olmak üzere Android ve Google Play'den önemli güncellemeler ile duyuruları gönderebilmemiz için Google Play Console'da e-postalara kaydolun.