SDK Uzantıları modüler sistemden yararlanır bileşenleri ekleyin kullanıma sunduk. Bu API'ler Son kullanıcılar Google Play aracılığıyla modül güncellemeleri aldığında cihazlara teslim edilir sistem güncellemelerine bakın. Uygulaması geliştiriciler, şu ana kadar SDK'da orijinal olarak bulunmayan işlevlere erişebilirsiniz. Android'in sürümleri.
API Sürümleri
Android cihazlar, Android 11'den (API düzeyi 30) itibaren bir dizi SDK içerir
Uzantılar'ı tıklayın. Yeni API'ler eklendiğinde bir API düzeyine dahil edilirler, ancak
belirli bir sürümün SDK uzantısına da dahil edilmelidir. Örneğin,
ACTION_PICK_IMAGES
Fotoğraf Seçici için API, Android 13'te (API düzeyi 33) herkese açık SDK'ya eklendi.
ancak R Uzantıları Sürüm 2'den başlayan SDK uzantıları aracılığıyla da kullanılabilir.
SDK uzantısı adları bir tam sayı sabitine karşılık gelir.
bir sabit değer
Build.VERSION_CODES
veya bir
SdkExtensions
sınıfında tanımlanır (örneğin,
SdkExtensions.AD_SERVICES
) tıklayın.
Hangi SDK Uzantılarının kullanılacağını belirleme
SDK Extension API'lerini kullanabilmek için öncelikle hangi SDK'ların olduğunu belirlemeniz gerekir uygulamanızın kullanım alanlarını destekleyen API'leri dahil edin.
SDK Extension API'lerinin API referans sayfaları, en eski SDK'yı belirtir uygulamanızın bir API'ye erişmek için kullanabileceği uzantı sürümünü gösterir. Dokümanlar bir Android platform sürümü de (API düzeyi ile referans verilen) belirtirse API, ilgili Android sürümünü veya sonraki sürümleri çalıştıran tüm cihazlarda da kullanılabilir.
Örneğin ACTION_PICK_IMAGES
, herkese açık SDK'da genel olarak kullanılabilir.
(API düzeyi 33) başlar, ancak şu ana kadar cihazlarda da mevcuttur
cihaz en az R sürümüne sahip olduğu sürece Android 11 (API düzeyi 30) sürümüne
Uzantılar Sürümü 2:
Bu API'yi kullanmak için en azından API düzeyinde bir SDK ile derleme yapmanız gerekir 33 veya En az 2 olan Uzantı Düzeyi.
Bir uzantı SDK'sı kullanmak için aşağıdaki adımları izleyin:
- Özelliği kontrol ederek ihtiyacınız olan minimum uzantı sürümünü bulun dokümanları ve API referansını ekleyin.
- Özellik grubunuz için gerekli uzantı sürümünü belirledikten sonra Android Studio'da SDK Yöneticisi'ni açın.
- İlgili uzantıya sahip Android SDK Platformu girişini seçin sürümü (veya API'ler eklemeli olduğundan daha yüksek bir sürüm). Örnek: Android SDK Platformu 33, Uzantı Düzeyi 4.
Bu değerleri, uygulamanızın
build.gradle.kts
veyabuild.gradle
bölümünde beyan edin dosya:Eski
android { compileSdk 33 compileSdkExtension 4 ... }
Kotlin
android { compileSdk = 33 compileSdkExtension = 4 ... }
SDK Uzantılarının kullanılabilir olup olmadığını kontrol etme
Uygulamanız, çalışma zamanında hangi SDK Uzantısı sürümlerinin mevcut olduğunu kontrol edebilir ve geliştirme sırasında Android Debug'ı kullanarak uzantı sürümlerini arayabilirsiniz Aşağıdaki bölümlerde açıklandığı gibi Bridge (adb) komutları:
Çalışma zamanında kontrol et
Uygulamanız, çalışma zamanında SDK Uzantılarının belirli bir web sitesi için kullanılabilir olup olmadığını kontrol edebilir
kullanılan platform sürümünü
getExtensionVersion()
yöntemidir. Örneğin, aşağıdaki kod uzantı sürüm 2'nin
Android 11 (API düzeyi 30) SDK Uzantısı için kullanılabilir:
Kotlin
fun isPhotoPickerAvailable(): Boolean { return SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) >= 2 // Safely use extension APIs that are available with Android 11 (API level 30) Extensions Version 2, such as Photo Picker. }
Java
public static final boolean isPhotoPickerAvailable() { return SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) >= 2; }
Bu, mevcut bir kontrol talebine dayalı olarak
Build.VERSION.SDK_INT
:
Kotlin
fun isPhotoPickerAvailable(): Boolean { return Build.VERSION.SDK_INT >= 33 }
Java
public static final boolean isPhotoPickerAvailable() { return Build.VERSION.SDK_INT >= 33; }
Bu SDK_INT
kontrolü hâlâ güvenli ve geçerlidir ancak isPhotoPickerAvailable
,
Uzantı API'si kullanılabilir olsa bile bazı cihazlarda "yanlış" değerini döndürür. Kullanıcı
SDK_INT
kontrolü optimum değildir ve uzantı sürüm kontrolü
kontrol etmenin daha iyi bir yolu olabilir. SDK_INT
daha fazla özelliğe sahip tüm cihazlar
33
(Android 13 veya sonraki sürümler) veya sonraki sürümler için Fotoğraf Seçici API'leri
herkese açık SDK, ancak SDK_INT
sürümü 33'ten az olan cihazlar var (ör. Android
11, 12 ve 12L) erişebilir.
en az 2
sürümleri.
Bu durumda, uzantı sürüm kontrolü kullanmak, uygulamanızın ek işlevler sunar. SDK uzantısı adlarını ve sabit değerleri içeren bir liste görmek için bir cihazda belirli SDK Uzantılarını kontrol etme.
Reklam Hizmetleri Uzantıları
Genel SDK Uzantıları grubuna benzer şekilde, AdServices
API referansı
bazen bir API'nin, "Reklam Hizmetleri Uzantıları"nın bir parçası olduğunu belirtir sürümünü değil.
Genel SDK Uzantılarından farklı olarak, Reklam Hizmetleri Uzantıları
Cihazda hangi sürümün olduğunu belirlemek için SdkExtensions.AD_SERVICES
sabit değeri:
Kotlin
fun isAdServicesAvailable(): Boolean { return SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4 }
Java
public static final boolean isAdServicesAvailable() { return SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4; }
Reklam Hizmetleri Uzantıları'ndaki özellikler ve hakkında daha fazla bilgi edinmek için Reklam Hizmetleri Uzantıları dokümanlarına göz atın.
Yardımcı yöntemler
Bazı durumlarda SDK Uzantılarının, ve SDK Extension API'lerinin kullanılabilirlik durumunu gösteriyor. Örneğin, bir Jetpack Photo Picker'ı kontrol edecek kitaplık işlevi , soyutlayan koşullu sürüm kontrollerini soyutlar.
Araç desteği
Android Studio Flamingo'da | 2022.2.1 veya sonraki bir sürüm yüklüyse lint aracı, NewAPI kontrolünün bir parçası olarak SDK Uzantısı sürümleriyle ilgili sorunlar olduğunu varsayalım. Ayrıca, Android Studio, şu özelliklere sahip API'ler için doğru sürüm kontrollerini otomatik olarak oluşturabilir: SDK Uzantıları kullanılarak başlatıldı.
SDK Uzantı adları ve sabitleri
Aşağıdaki tabloda, varsayılan olarak ayarlanan farklı SDK Uzantısı
API referans belgelerinde listelenen, uygulamanızın şu işlemler için kullanabileceği sabit değerlerle eşleşir:
çalışma zamanında API kullanılabilirliğini kontrol edin. SDK Uzantılarının genel grubu
herkese açık her SDK,
Build.VERSION_CODES
.
SDK Uzantısı adı | Sabit | Uygun cihazlar |
---|---|---|
R Uzantıları | VERSION_CODES.R |
Android 11 (API Düzeyi 30) ve sonraki sürümler |
S Uzantıları | VERSION_CODES.S |
Android 12 (API Düzeyi 31) ve sonraki sürümler |
T Uzantıları | VERSION_CODES.TIRAMISU |
Android 13 (API düzeyi 33) ve sonraki sürümler |
Reklam Hizmetleri Uzantıları | SdkExtensions.AD_SERVICES |
Android 13 (API düzeyi 33) ve sonraki sürümler |
Adb kullanarak kontrol et
Adb kullanan bir cihazda hangi SDK uzantılarının kullanılabildiğini kontrol etmek için şu komutu kullanın:
adb shell getprop | grep build.version.extensions
Komutu çalıştırdıktan sonra şuna benzer bir çıkış görürsünüz:
[build.version.extensions.r]: [3] # Android 11 (API level 30) and higher
[build.version.extensions.s]: [3] # Android 12 (API level 31) and higher
[build.version.extensions.t]: [3] # Android 13 (API level 33) and higher
Her satırda, cihazda mevcut olan bir SDK uzantısı, ilgili uzantı sürümünü (bu örnekte 3) belirtin.