Android'in son sürümleri genellikle uygulamanız için başarılı API'ler sağlar, ancak daha fazla cihaz güncellenene kadar Android'in eski sürümlerini desteklemeye devam etmelisiniz. Bu derste, eski sürümleri desteklemeye devam ederken en yeni API'lerden nasıl yararlanacağınızı öğreneceksiniz.
Android'in her sürümünü çalıştıran etkin cihazların dağılımını bulmak için Android Studio Yeni Proje sihirbazını kullanın. Bu dağılım, Google Play Store'u ziyaret eden cihaz sayısına dayanır. Genel olarak, uygulamanızı en son sürüme hedeflerken etkin cihazların yaklaşık% 90'ını desteklemenizi öneririz.
İpucu: Çeşitli Android sürümlerinde en iyi özellikleri ve işlevleri sağlamak için uygulamanızda Android Destek Kitaplığı'nı kullanmanız gerekir. Bu kitaplık, eski sürümlerde bazı son platform API'lerini kullanmanıza olanak tanır.
Minimum ve hedef API düzeylerini belirtin
AndroidManifest.xml dosyası, uygulamanızla ilgili ayrıntıları açıklar ve hangi Android sürümlerini desteklediğini tanımlar. Özellikle <uses-sdk>
öğesinin minSdkVersion
ve targetSdkVersion
özellikleri, uygulamanızın uyumlu olduğu en düşük API düzeyini ve uygulamanızı tasarlayıp test ettiğiniz en yüksek API seviyesini tanımlar.
Örneğin:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
Android'in yeni sürümleri yayınlandıkça bazı stil ve davranışlar değişebilir.
Uygulamanızın bu değişikliklerden yararlanmasını ve uygulamanızın her kullanıcının cihazının stiline uygun olmasını sağlamak için targetSdkVersion
değerini mevcut en son Android sürümüyle eşleşecek şekilde ayarlamanız gerekir.
Çalışma zamanında sistem sürümünü kontrol et
Android, Build
sabit değerleri sınıfındaki her platform sürümü için benzersiz bir kod sağlar. Daha yüksek API düzeylerine bağlı olan kodun, yalnızca bu API'ler sistemde kullanılabilir olduğunda yürütülmesini sağlayan koşullar oluşturmak için uygulamanızda bu kodları kullanın.
Kotlin
private fun setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionBar.setDisplayHomeAsUpEnabled(true) } }
Java
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
Not: Android, XML kaynaklarını ayrıştırırken mevcut cihaz tarafından desteklenmeyen XML özelliklerini yoksayar. Böylece, yalnızca yeni sürümler tarafından desteklenen XML özelliklerini, eski sürümlerin bu kodla karşılaştığında bozulma endişesi duymadan güvenle kullanabilirsiniz. Örneğin, targetSdkVersion="11"
özelliğini ayarlarsanız uygulamanız Android 3.0 ve sonraki sürümlerde varsayılan olarak ActionBar
içerir. Ardından işlem çubuğuna menü öğeleri eklemek için menü kaynağı XML'inizde android:showAsAction="ifRoom"
öğesini ayarlamanız gerekir. Android'in eski sürümleri showAsAction
özelliğini yoksaydığı (yani res/menu-v11/
içinde ayrı bir sürüme ihtiyacınız yoktur) için bu işlemi sürümler arası XML dosyasında yapmak güvenlidir.
Platform stillerini ve temalarını kullanma
Android, uygulamalara temel işletim sisteminin görünümünü ve tarzını veren kullanıcı deneyimi temaları sunar. Bu temalar, manifest dosyası içinde uygulamanıza uygulanabilir. Bu yerleşik stil ve temaları kullanarak uygulamanız her yeni sürümde doğal olarak Android'in en son görünümünü ve tarzını yansıtacaktır.
Etkinliğinizin iletişim kutusu gibi görünmesini sağlamak için:
<activity android:theme="@android:style/Theme.Dialog">
Etkinliğinizin arka planı şeffaf hale getirmek için:
<activity android:theme="@android:style/Theme.Translucent">
/res/values/styles.xml
içinde tanımlanmış kendi özel temanızı uygulamak için:
<activity android:theme="@style/CustomTheme">
Bir temayı uygulamanızın tamamına (tüm etkinlikler) uygulamak için <application>
öğesine android:theme
özelliğini ekleyin:
<application android:theme="@style/CustomTheme">
Tema oluşturma ve kullanma hakkında daha fazla bilgi için Stiller ve Temalar kılavuzunu okuyun.