Farklı platform sürümlerini destekleme

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.