Farklı platform sürümlerini destekleme

Android'in en yeni sürümleri genellikle uygulamanız için harika API'ler sunsa da daha fazla cihaz güncellenene kadar Android'in eski sürümlerini desteklemeye devam etmeniz gerekir. Bu derste, eski sürümleri desteklemeye devam ederken en yeni API'lerden nasıl yararlanacağınız gösterilmektedir.

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ğıtım, Google Play Store'u ziyaret eden cihazların sayısına göre belirlenir. Genellikle, uygulamanızı en son sürümü hedefleyecek şekilde geliştirirken etkin cihazların yaklaşık% 90'ını desteklemenizi öneririz.

İpucu: Çeşitli Android sürümlerinde en iyi özellikleri ve işlevleri sunmak için uygulamanızda Android Destek Kitaplığı'nı kullanmanız gerekir. Bu kitaplık, eski sürümlerde çeşitli yeni 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 düzeyini 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 yararlanabilmesi ve her kullanıcının cihazının stiline uygun olmasını sağlamak için targetSdkVersion değerini, mevcut en yeni Android sürümüne uygun şekilde ayarlamanız gerekir.

Alt SDK sürümleri davranış değişiklikleriyle ilişkili olmadığından targetSdkVersion değerini alt SDK sürümünü yansıtacak şekilde ayarlamak mümkün değildir. minSdkVersion sürümünüzden daha yeni bir alt SDK sürümünde API çağırmak istiyorsanız çalışma zamanındaki sistem sürümünü kontrol edin.

Çalışma zamanında sistem sürümünü kontrol etme

Android, Buildconstants sınıfındaki her platform sürümü için benzersiz bir kod sağlar. API düzeyleri daha yüksek olan kodun yalnızca bu API'ler sistemde kullanılabilir olduğunda yürütülmesini sağlayan koşullar oluşturmak için bu kodları uygulamanızda 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);
    }
}

Build.VERSION.SDK_INT_FULL kullanarak büyük veya küçük bir SDK sürümünün varlığını kontrol edebilirsiniz.

Kotlin

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor SDK release
}

Java

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor SDK release
}

Not: Android, XML kaynaklarını ayrıştırırken mevcut cihaz tarafından desteklenmeyen XML özelliklerini yoksayar. Bu sayede, yalnızca daha yeni sürümler tarafından desteklenen XML özelliklerini, eski sürümlerin bu kodla karşılaştığında bozulacağı konusunda endişelenmeden güvenle kullanabilirsiniz. Örneğin, targetSdkVersion="11" öğesini ayarlarsanız uygulamanızda Android 3.0 ve sonraki sürümlerde varsayılan olarak ActionBar yer alır. Ardından, işlem çubuğuna menü öğeleri eklemek için menü kaynağı XML'nizde android:showAsAction="ifRoom" değerini ayarlamanız gerekir. Android'in eski sürümleri showAsAction özelliğini yok saydığından (yani res/menu-v11/ içinde ayrı bir sürüme ihtiyacınız yoktur) bunu sürümler arası bir XML dosyasında yapmanız 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 stilleri ve temaları kullanarak uygulamanız, her yeni sürümde Android'in en son görünümünü ve tarzını doğal olarak takip eder.

Etkinliğinizin iletişim kutusu gibi görünmesini sağlamak için:

<activity android:theme="@android:style/Theme.Dialog">

Etkinliğinizin şeffaf bir arka plana sahip olması için:

<activity android:theme="@android:style/Theme.Translucent">

/res/values/styles.xml içinde tanımlanan kendi özel temanızı uygulamak için:

<activity android:theme="@style/CustomTheme">

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 inceleyin.