Mendukung berbagai versi platform

Meskipun versi terbaru Android sering menyediakan API yang sangat baik untuk aplikasi, Anda harus terus mendukung versi Android yang lebih lama sampai ada lebih banyak perangkat yang diupdate. Pelajaran ini menunjukkan cara memanfaatkan API terbaru sambil terus mendukung versi yang lebih lama.

Gunakan wizard Project Baru di Android Studio untuk menemukan distribusi perangkat aktif yang menjalankan setiap versi Android. Distribusi ini didasarkan pada jumlah perangkat yang membuka Google Play Store. Secara umum, sebaiknya dukung sekitar 90% perangkat aktif, sambil menargetkan aplikasi Anda ke versi terbaru.

Tips: Untuk menyediakan fitur dan fungsi terbaik di beberapa versi Android, Anda harus menggunakan Android Support Library di aplikasi Anda, yang memungkinkan untuk menggunakan beberapa API platform terbaru pada versi yang lebih lama.

Menentukan level API minimum dan target

File AndroidManifest.xml akan menjelaskan detail aplikasi Anda dan mengidentifikasi versi Android yang didukungnya. Secara khusus, atribut minSdkVersion dan targetSdkVersion untuk elemen <uses-sdk> mengidentifikasi level API terendah yang kompatibel dengan aplikasi Anda dan level API tertinggi yang digunakan untuk mendesain dan menguji aplikasi Anda.

Contoh:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

Saat versi Android yang baru dirilis, beberapa gaya dan perilaku mungkin berubah. Untuk memungkinkan aplikasi Anda memanfaatkan perubahan ini dan memastikan aplikasi telah sesuai dengan gaya masing-masing perangkat pengguna, Anda harus menetapkan nilai targetSdkVersion untuk mencocokkan dengan versi Android terbaru yang tersedia.

Memeriksa versi sistem pada runtime

Android akan menyediakan kode unik untuk setiap versi platform di class konstanta Build. Gunakan kode-kode ini dalam aplikasi Anda untuk menciptakan kondisi yang memastikan bahwa kode yang bergantung pada level API yang lebih tinggi hanya dijalankan saat API tersebut tersedia di sistem.

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);
    }
}

Catatan: Saat mengurai resource XML, Android akan mengabaikan atribut XML yang tidak didukung oleh perangkat saat ini. Jadi, Anda dapat secara aman menggunakan atribut XML yang hanya didukung oleh versi yang lebih baru tanpa khawatir dengan kerusakan pada versi yang lebih lama saat menemukan kode tersebut. Misalnya, jika Anda menetapkan targetSdkVersion="11", aplikasi Anda akan menyertakan ActionBar secara default di Android 3.0 dan versi yang lebih tinggi. Kemudian, untuk menambahkan item menu ke panel tindakan, Anda perlu menetapkan android:showAsAction="ifRoom" pada XML resource menu. Tindakan ini aman dilakukan dalam file XML lintas versi, karena versi Android yang lebih lama mengabaikan atribut showAsAction (berarti, Anda tidak memerlukan versi yang terpisah di res/menu-v11/).

Menggunakan gaya dan tema platform

Android menyediakan tema pengalaman pengguna yang menghadirkan tampilan dan nuansa dari sistem operasi yang saat ini digunakan pada aplikasi Anda. Tema-tema ini dapat diterapkan ke aplikasi Anda dalam file manifes. Dengan gaya dan tema bawaan ini, aplikasi Anda secara alami akan mengikuti tampilan dan nuansa Android terbaru dengan setiap rilis baru.

Untuk membuat aktivitas Anda tampak seperti kotak dialog:

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

Untuk membuat aktivitas Anda memiliki latar belakang transparan:

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

Untuk menerapkan tema kustom Anda sendiri yang ditentukan di /res/values/styles.xml:

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

Untuk menerapkan tema ke seluruh aplikasi Anda (semua aktivitas), tambahkan atribut android:theme ke elemen <application>:

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

Untuk mempelajari pembuatan dan penggunaan tema lebih lanjut, baca panduan Gaya dan Tema.