Google Play, uygulamanızın manifest dosyasında belirtilen <uses-sdk>
özellikleri kullanarak uygulamanızı platform sürümü şartlarını karşılamayan cihazlarda filtreler. Bu özellikleri ayarlamadan önce Google Play filtrelerini anladığınızdan emin olun.
- söz dizimi:
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
- içerir:
<manifest>
- description:
Bir uygulamanın Android platformunun bir veya daha fazla sürümüyle uyumluluğunu bir API düzeyi tam sayısı aracılığıyla ifade etmenizi sağlar. Bir uygulama tarafından ifade edilen API düzeyi, belirli bir Android sisteminin API düzeyiyle karşılaştırılır. Bu düzey, farklı Android cihazlarda değişiklik gösterebilir.
Bu öğe, adının aksine, yazılım geliştirme kitinin (SDK) veya Android platformunun sürüm numarasını değil API düzeyini belirtmek için kullanılır. API düzeyi her zaman tek bir tam sayıdır. API düzeyini, ilişkili Android sürüm numarasından türetemezsiniz. Örneğin, ana sürümle veya ana ve alt sürümlerin toplamıyla aynı değildir.
Bir uygulamanın alt SDK sürümünü hedeflediğini veya gerektirdiğini belirtmek mümkün değildir.
Ayrıca uygulamalarınız için sürüm oluşturma hakkındaki belgeyi de okuyun.
- özellikleri:
-
android:minSdkVersion
- Uygulamanın çalışması için gereken minimum API düzeyini belirten bir tam sayı. Android sistemi, sistemin API düzeyi bu özellikte belirtilen değerden düşükse kullanıcının uygulamayı yüklemesini engeller. Bu özelliği her zaman bildirin.
Dikkat: Bu özelliği bildirmezseniz sistem varsayılan olarak "1 " değerini kullanır. Bu değer, uygulamanızın Android'in tüm sürümleriyle uyumlu olduğunu gösterir. Değilse ve uygun
minSdkVersion
öğesini belirtmediyseniz uygulama, uyumsuz bir API düzeyine sahip bir sisteme yüklendiğinde kullanılamayan API'lere erişmeye çalışırken çalışma zamanında çöker. Bu nedenle,minSdkVersion
özelliğinde uygun API düzeyini bildirdiğinizden emin olun. android:targetSdkVersion
- Uygulamanın hedeflediği API düzeyini belirten bir tam sayı. Ayarlanmazsa varsayılan değer,
minSdkVersion
için verilen değere eşit olur.Bu özellik, sisteme hedef sürümle test yaptığınızı bildirir ve sistem, uygulamanızın hedef sürümle ileriye dönük uyumluluğunu korumak için herhangi bir uyumluluk davranışını etkinleştirmez. Uygulama, daha eski sürümlerde (
minSdkVersion
sürümüne kadar) çalışmaya devam edebilir.Android her yeni sürümde geliştiğinden bazı davranışlar, hatta görünümler bile değişebilir. Ancak platformun API düzeyi, uygulamanızın
targetSdkVersion
tarafından beyan edilen sürümden daha yüksekse sistem, uygulamanızın beklendiği şekilde çalışmaya devam etmesi için uyumluluk davranışlarını etkinleştirebilir. Bu tür uyumluluk davranışlarını, çalıştığı platformun API düzeyine uyguntargetSdkVersion
değerini belirterek devre dışı bırakabilirsiniz.Örneğin, bu değeri "11" veya daha yüksek bir değere ayarlamak, Android 3.0 ya da sonraki sürümlerde çalışırken sistemin uygulamanıza Holo varsayılan temasını uygulamasını sağlar. Ayrıca, API düzeyi 11 desteği dolaylı olarak daha büyük ekranları desteklediğinden, daha büyük ekranlarda çalışırken ekran uyumluluk modu devre dışı bırakılır.
Sistem, bu özellik için belirlediğiniz değere bağlı olarak etkinleştirebileceği birçok uyumluluk davranışı vardır. Bu davranışların birçoğu,
Build.VERSION_CODES
referansındaki ilgili platform sürümleriyle açıklanmaktadır.Uygulamanızı her Android sürümüyle birlikte korumak için bu özelliğin değerini en son API düzeyine uygun olacak şekilde artırın, ardından uygulamanızı ilgili platform sürümünde kapsamlı bir şekilde test edin.
Kullanıma sunulduğu API düzeyi: 4
- Uygulamanın çalıştırılmak üzere tasarlandığı maksimum API düzeyini belirten bir tam sayı.
Android 1.5, 1.6, 2.0 ve 2.0.1'de sistem, bir uygulama yüklenirken ve sistem güncellemesinden sonra uygulama yeniden doğrulanırken bu özniteliğin değerini kontrol eder. Her iki durumda da uygulamanın
maxSdkVersion
özelliği, sistemin kendisi tarafından kullanılan API düzeyinden düşükse sistem, uygulamanın yüklenmesine izin vermez. Sistem güncellemesinden sonra yeniden doğrulama yapılması durumunda, uygulamanız cihazdan kaldırılır.Bu özelliğin, sistem güncellemelerinden sonra uygulamanızı nasıl etkileyebileceğini göstermek için aşağıdaki örneği inceleyin:
Manifest dosyasında
maxSdkVersion="5"
beyan eden bir uygulama Google Play'de yayınlanmış olmalıdır. Cihazında Android 1.6 (API düzeyi 4) çalıştıran bir kullanıcı uygulamayı indirip yükler. Birkaç hafta sonra kullanıcı, Android 2.0 (API düzeyi 5) için kablosuz sistem güncellemesi alır. Güncelleme yüklendikten sonra sistem, uygulamanınmaxSdkVersion
değerini kontrol eder ve başarılı bir şekilde yeniden doğrular.Uygulama normal şekilde çalışır. Ancak bir süre sonra cihaz, bu kez Android 2.0.1'e (API düzeyi 6) yönelik başka bir sistem güncellemesi alır. Güncellemeden sonra sistem, uygulamanın kendi API düzeyi (6) artık uygulama tarafından desteklenen maksimum düzeyden (5) daha yüksek olduğundan uygulamayı yeniden doğrulayamaz. Sistem, uygulamanın kullanıcı tarafından görünmesini engeller ve uygulamayı cihazdan kaldırır.
Uyarı: Bu özelliği bildirmeniz önerilmez. İlk olarak, Android platformunun yeni sürümleri yayınlandıkça uygulamanızın bu sürümlere dağıtımını engellemek için özelliği ayarlamanız gerekmez. Platformun yeni sürümleri, tasarım gereği tamamen geriye dönük uyumludur. Uygulamanız yalnızca standart API'ler kullandığı ve geliştirme ile ilgili en iyi uygulamalara uyduğu sürece yeni sürümlerde düzgün şekilde çalışır. İkinci olarak, bazı durumlarda bu özelliği bildirmek, sistemin daha yüksek bir API düzeyine güncellenmesinin ardından uygulamanızın kullanıcıların cihazlarından kaldırılmasına neden olabilir. Uygulamanızın yüklenmesi muhtemel olan çoğu cihaz, kablosuz olarak düzenli sistem güncellemeleri alır. Bu nedenle, bu özelliği ayarlamadan önce bu güncellemelerin uygulamanız üzerindeki etkisini göz önünde bulundurun.
Kullanıma sunulduğu API düzeyi: 4
Android'in bazı sürümlerinde (Android 2.0.1'in ötesinde), yükleme veya yeniden doğrulama sırasındamaxSdkVersion
özelliği kontrol edilmez ya da zorunlu kılınmaz. Google Play, kullanıcıları indirilebilecek uygulamalarla tanıştırırken bu özelliği filtre olarak kullanmaya devam eder.
- Tanıtıldığı oyun:
- API düzeyi 1
API düzeyi nedir?
API düzeyi, Android platformunun bir sürümü tarafından sunulan çerçeve API'si revizyonunu benzersiz şekilde tanımlayan bir tam sayı değeridir.
Android platformu, uygulamaların temel Android sistemiyle etkileşim kurmak için kullanabileceği bir çerçeve API'si sağlar. Framework API şunlardan oluşur:
- Temel bir paket ve sınıf grubu
- Manifest dosyası bildirmek için kullanılan bir grup XML öğesi ve özelliği
- Kaynakları bildirmek ve bunlara erişmek için kullanılan bir dizi XML öğesi ve özelliği
- Bir dizi amaç
- Uygulamaların isteyebileceği izinler grubu ve sisteme dahil edilen izin zorunlulukları
Android platformunun her sonraki sürümü, sunduğu Android uygulama çerçevesi API'sinde güncellemeler içerebilir.
Çerçeve API'sinde yapılan güncellemeler, yeni API'nin API'nin önceki sürümleriyle uyumlu kalmasını sağlayacak şekilde tasarlanmıştır. Yani API'deki çoğu değişiklik ekleme şeklindedir ve yeni veya değiştirilmiş işlevler sunar. API'nin bazı bölümleri yükseltilirken eski ve değiştirilen bölümlerin desteği sonlandırılır ancak bu bölümler kaldırılmaz. Böylece mevcut uygulamalar bunları kullanmaya devam edebilir.
Çok az sayıda durumda, API'nin bazı bölümleri değiştirilir veya kaldırılır. Ancak bu tür değişiklikler genellikle yalnızca API'nin sağlamlığını ve uygulama ya da sistem güvenliğini desteklemek için gereklidir. Önceki düzeltmelerdeki diğer tüm API bölümleri, değiştirilmeden sonraki düzeltmelere aktarılır.
Android platformunun sunduğu çerçeve API'si, API düzeyi adı verilen bir tam sayı tanımlayıcı kullanılarak belirtilir. Her Android platform sürümü tam olarak bir API düzeyini destekler. Ancak daha önceki tüm API düzeyleri (API düzeyi 1'e kadar) için destek örtülüdür. Android platformunun ilk sürümünde API düzeyi 1 sağlanmış, sonraki sürümlerde ise API düzeyi artırılmıştır.
Aşağıdaki tabloda, Android platformunun her sürümü tarafından desteklenen API düzeyi belirtilmektedir. Her sürümü çalıştıran cihazların göreli sayıları hakkında bilgi edinmek için Dağıtım kontrol paneli'ne bakın.
Android'de API düzeyinin kullanımları
API düzeyi tanımlayıcısı, kullanıcılar ve uygulama geliştiriciler için mümkün olan en iyi deneyimi sağlamaya yardımcı olma konusunda önemli bir rol oynar:
- Android platformunun, desteklediği maksimum çerçeve API revizyonunu tanımlamasına olanak tanır.
- Uygulamaların, ihtiyaç duydukları çerçeve API revizyonunu açıklamasına olanak tanır.
- Bu ayar, sistemin kullanıcının cihazına uygulama yüklenmesini yönetmesine olanak tanır. Böylece, sürümle uyumlu olmayan uygulamalar yüklenmez.
Her Android platform sürümü, API düzeyi tanımlayıcısını dahili olarak Android sisteminde depolar.
Uygulamalar, çalışabilecekleri minimum ve maksimum API düzeylerini ve desteklemek üzere tasarlandıkları tercih edilen API düzeyini açıklamak için çerçeve API'si tarafından sağlanan bir manifest öğesi (<uses-sdk>
) kullanabilir. Bu öğe üç temel özellik sunar:
android:minSdkVersion
: Uygulamanın çalışabileceği minimum API düzeyi. Varsayılan değer "1"dir.android:targetSdkVersion
: Uygulamanın çalışacak şekilde tasarlandığı API düzeyi. Bazı durumlarda bu, uygulamanın yalnızca minimum API düzeyi için tanımlananları kullanmakla sınırlı kalmak yerine hedef API düzeyinde tanımlanan manifest öğelerini veya davranışlarını kullanmasına olanak tanır.android:maxSdkVersion
: Uygulamanın çalışabileceği maksimum API düzeyi. Önemli: Bu özelliği kullanmadan önce bu sayfadaki özellikle ilgili bilgileri okuyun.
Örneğin, bir uygulamanın çalışması için gereken minimum sistem API düzeyini belirtmek üzere uygulama, manifest dosyasına android:minSdkVersion
özelliği içeren bir <uses-sdk>
öğesi ekler. android:minSdkVersion
değeri, uygulamanın çalışabileceği Android platformunun en eski sürümünün API düzeyine karşılık gelen tam sayıdır.
Kullanıcı bir uygulamayı yüklemeye çalıştığında veya sistem güncellemesinden sonra bir uygulamayı yeniden doğrularken Android sistemi önce uygulamanın manifest dosyasındaki <uses-sdk>
özelliklerini kontrol eder ve değerleri kendi dahili API düzeyiyle karşılaştırır. Sistem, yalnızca aşağıdaki koşullar karşılandığında kurulumun başlamasına izin verir:
- Bir
android:minSdkVersion
özelliği beyan edildiyse değeri, sistemin API düzeyi tam sayısına eşit veya bu değerden küçüktür. Bildirilmezse sistem, uygulamanın API düzeyi 1'i gerektirdiğini varsayar. - Bir
android:maxSdkVersion
özelliği beyan ediliyorsa değeri, sistemin API düzeyi tam sayısına eşit veya bu tam sayıdan büyüktür. Bildirilmezse sistem, uygulamanın maksimum API düzeyinin olmadığını varsayar. Sistemin bu özelliği nasıl işlediği hakkında daha fazla bilgi edinmek için bu özelliğin açıklamasını okuyun.
Bir uygulamanın manifestinde beyan edildiğinde <uses-sdk>
öğesi aşağıdaki gibi görünebilir:
<manifest> <uses-sdk android:minSdkVersion="5" /> ... </manifest>
Bir uygulamanın android:minSdkVersion
içinde API düzeyi bildirmesinin temel nedeni, Android sistemine belirtilen API düzeyinde kullanıma sunulan API'leri kullandığını bildirmektir.
Uygulama, daha düşük bir API düzeyine sahip bir platforma bir şekilde yüklenirse, mevcut olmayan API'lere erişmeye çalıştığında çalışma zamanında kilitlenir. Sistem, uygulamanın gerektirdiği en düşük API düzeyi, hedef cihazdaki platform sürümünün API düzeyinden yüksekse uygulamanın yüklenmesine izin vermeyerek bu sonucu engeller.
Geliştirme ile ilgili dikkat edilmesi gereken hususlar
Aşağıdaki bölümlerde, uygulamanızı geliştirirken dikkate almanız gereken API düzeyiyle ilgili bilgiler verilmiştir.
Uygulama ileri uyumluluğu
Android uygulamaları genellikle Android platformunun yeni sürümleriyle ileriye dönük olarak uyumludur.
Çerçeve API'sinde yapılan değişikliklerin neredeyse tamamı ekleme şeklinde olduğundan, API düzeyinde belirtildiği gibi API'nin belirli bir sürümü kullanılarak geliştirilen bir Android uygulaması, Android platformunun sonraki sürümleri ve daha yüksek API düzeyleriyle ileriye dönük olarak uyumludur. Uygulama, Android platformunun sonraki tüm sürümlerinde çalışabilir. Ancak uygulamanın, daha sonra bir nedenle kaldırılan bir API bölümünü kullandığı izole durumlarda bu geçerli değildir.
Birçok Android destekli cihaz kablosuz olarak (OTA) sistem güncellemeleri aldığından ileriye dönük uyumluluk önemlidir. Kullanıcı, uygulamanızı yükleyip başarıyla kullanabilir ve daha sonra Android platformunun yeni bir sürümüne OTA güncellemesi alabilir. Güncelleme yüklendikten sonra uygulamanız, ortamın yeni bir çalışma zamanı sürümünde çalışır ancak uygulamanızın bağlı olduğu API ve sistem özelliklerini korur.
API'nin altında yapılan değişiklikler (ör. temel sistemin kendisinde yapılan değişiklikler), uygulamanız yeni ortamda çalıştırıldığında uygulamanızı etkileyebilir. Uygulama geliştiricisi olarak, uygulamanın her sistem ortamında nasıl göründüğünü ve davrandığını anlamanız önemlidir.
Uygulamanızı Android platformunun çeşitli sürümlerinde test etmenize yardımcı olmak için Android SDK'da indirebileceğiniz birden fazla platform bulunur. Her platform, uygulamanızı test etmek için AVD'de çalıştırabileceğiniz uyumlu bir sistem görüntüsü içerir.
Uygulama geriye dönük uyumluluğu
Android uygulamaları, derlendikleri sürümden daha eski Android platformu sürümleriyle geriye dönük olarak uyumlu olmayabilir.
Android platformunun her yeni sürümünde, uygulamalara yeni platform özelliklerine erişim sağlayan veya mevcut API bölümlerinin yerini alanlar gibi yeni çerçeve API'leri bulunabilir. Yeni API'ler, yeni platformda ve platformun sonraki sürümlerinde çalışırken API düzeyinde belirtildiği şekilde uygulamalar tarafından erişilebilir. Ancak platformun önceki sürümleri yeni API'leri içermediğinden yeni API'leri kullanan uygulamalar bu platformlarda çalışamaz.
Android destekli bir cihazın platformun önceki bir sürümüne düşürülmesi olası olmasa da sahada platformun eski sürümlerini çalıştıran birçok cihazın olabileceğini unutmamak önemlidir. OTA güncellemelerini alan cihazlar arasında bile bazıları geride kalabilir ve uzun süre güncelleme almayabilir.
Bir platform sürümü ve API düzeyi seçin
Uygulamanızı geliştirirken uygulamayı derleyeceğiniz platform sürümünü seçersiniz. Genel olarak, uygulamanızı destekleyebileceği platformun mümkün olan en düşük sürümüne göre derleyin.
Uygulamayı sırayla daha düşük derleme hedeflerine göre derleyerek mümkün olan en düşük platform sürümünü belirleyebilirsiniz. En düşük sürümü belirledikten sonra, ilgili platform sürümünü ve API düzeyini kullanarak bir AVD oluşturun ve uygulamanızı tam olarak test edin. Uygulamanın manifest dosyasında bir android:minSdkVersion
özelliği bildirdiğinizden ve değerini platform sürümünün API düzeyine ayarladığınızdan emin olun.
Minimum API düzeyi beyan etme
En son platform sürümünde kullanıma sunulan API'leri veya sistem özelliklerini kullanan bir uygulama oluşturursanız android:minSdkVersion
özelliğini en son platform sürümünün API düzeyine ayarlayın. Bunun nedeni, kullanıcıların yalnızca cihazlarında Android platformunun uyumlu bir sürümü çalışıyorsa uygulamanızı yükleyebilmesidir. Bu da uygulamanızın cihazlarında düzgün şekilde çalışmasını sağlar.
Uygulamanız en son platform sürümünde kullanıma sunulan API'leri kullanıyorsa ancak android:minSdkVersion
özelliğini bildirmiyorsa en son platform sürümünün yüklü olduğu cihazlarda düzgün çalışır ancak platformun önceki sürümlerinin yüklü olduğu cihazlarda çalışmaz. İkinci durumda, uygulama çalışma zamanında önceki sürümlerde bulunmayan API'leri kullanmaya çalıştığında kilitlenir.
Daha yüksek API düzeylerinde test etme
Uygulamanızı derledikten sonra, uygulamanın android:minSdkVersion
özelliğinde belirtilen platformda test ettiğinizden emin olun. Bunu yapmak için uygulamanızın gerektirdiği platform sürümünü kullanan bir AVD oluşturun. Ayrıca, ileriye dönük uyumluluğu kontrol etmek için uygulamayı, uygulamanızın kullandığından daha yüksek bir API düzeyini kullanan tüm platformlarda çalıştırın ve test edin.
Android SDK, en son sürüm de dahil olmak üzere kullanabileceğiniz birden fazla platform sürümü içerir ve gerektiğinde diğer platform sürümlerini indirmenize olanak tanıyan bir güncelleme aracı sunar.
Güncelleyiciye erişmek için android
komut satırı aracını kullanın. Bu araç, <sdk>/tools dizininde bulunur. android sdk
komutunu çalıştırarak SDK güncelleyiciyi başlatabilirsiniz. Ayrıca android.bat
(Windows) veya android
(OS X/Linux) dosyasını çift tıklayabilirsiniz.
Uygulamanızı emülatörde farklı platform sürümlerine karşı çalıştırmak için test etmek istediğiniz her platform sürümü için bir AVD oluşturun. AVD'ler hakkında daha fazla bilgi için Sanal cihazlar oluşturma ve yönetme başlıklı makaleyi inceleyin. Test için fiziksel bir cihaz kullanıyorsanız cihazın üzerinde çalıştığı Android platformunun API düzeyini bildiğinizden emin olun. Platform sürümlerinin ve API düzeylerinin listesi için bu belgedeki tabloya bakın.
Referans belgelerini API düzeyine göre filtreleme
Android platformu referans dokümanı sayfalarının her birinin sol üst kısmında "API düzeyi" kontrolü bulunur. Manifest dosyasının android:minSdkVersion
özelliğinde belirttiği API düzeyine göre, yalnızca uygulamanızın erişebildiği API bölümlerinin dokümanlarını göstermek için kontrolü kullanabilirsiniz.
Filtrelemeyi kullanmak için menüden uygulamanızın belirttiği API düzeyini seçin. Daha sonraki bir API düzeyinde kullanıma sunulan API'ler, uygulamanız tarafından erişilemediği için gri renkte gösterilir ve içerikleri maskelenir.
Belgelerde API düzeyine göre filtreleme, her API düzeyinde yeni olan veya kullanıma sunulan özelliklerin görünümünü sağlamaz. Daha sonraki API düzeylerinde kullanıma sunulan API öğelerini hariç tutarak belirli bir API düzeyiyle ilişkili tüm API'yi görüntülemenin bir yolunu sunar.
Tam dokümanı görüntülemeye dönmek için API düzeyi menüsünün üst kısmındaki REL'i seçin. API düzeyi filtreleme, API düzeyinden bağımsız olarak tam çerçeve API'sini görüntüleyebilmeniz için varsayılan olarak devre dışıdır.
Ayrı API öğeleriyle ilgili referans belgelerinde, her öğenin kullanıma sunulduğu API düzeyi belirtilir. Paketler ve sınıflar için API düzeyi, her doküman sayfasındaki içerik alanının sağ üst köşesinde "API düzeyinde eklendi" olarak belirtilir. Sınıf üyelerinin API düzeyi, ayrıntılı açıklama başlıklarında sağ kenar boşluğunda belirtilir.