Aplikasi Android berjalan di berbagai jenis perangkat: ponsel, tablet, perangkat foldable, perangkat ChromeOS, mobil, TV, dan bahkan XR. Agar dapat beradaptasi dengan lingkungan yang beragam ini, aplikasi Anda harus mendukung semua faktor bentuk perangkat dan ukuran tampilan.
Android 16 (level API 36) memungkinkan aplikasi beradaptasi dengan berbagai faktor bentuk dan ukuran tampilan dengan mengganti batasan aplikasi untuk orientasi layar, rasio aspek, dan kemampuan mengubah ukuran. Penggantian ini berlaku untuk perangkat dengan lebar terkecil >= 600dp yang menentukan hal berikut:
- Tablet
- Layar bagian dalam perangkat foldable layar besar
- Mode jendela desktop (di semua faktor bentuk)
Aplikasi yang menargetkan API level 36 dapat diubah ukurannya dan dapat memasuki mode multi-aplikasi (setara dengan resizeableActivity="true") jika lebar terkecil layar
adalah >= 600dp.
Android 16 menerapkan model desain aplikasi adaptif yang konsisten yang mengoptimalkan pengalaman pengguna dengan menghormati preferensi pengguna untuk orientasi perangkat, rasio aspek, dan ukuran tampilan.
Perubahan
Atribut manifes dan API berikut diabaikan untuk aplikasi yang menargetkan Android 16 (level API 36) di layar besar:
| Atribut atau API | Nilai yang diabaikan |
|---|---|
screenOrientation |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
resizeableActivity |
semua |
minAspectRatio |
semua |
maxAspectRatio |
semua |
setRequestedOrientation()getRequestedOrientation() |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
Pengecualian
Pengecualian terhadap perubahan Android 16 mencakup hal berikut:
Layar yang lebih kecil dari sw600dp (sebagian besar ponsel, perangkat foldable, dan layar luar perangkat foldable layar besar)
Game, berdasarkan tanda
android:appCategoryPublikasikan game Anda menggunakan Android App Bundle dan Penandatanganan Aplikasi Play, sehingga Google Play dapat mengelola tanda dan memberikan manfaat app bundle secara otomatis. Lihat juga Ringkasan manifes aplikasi.
Pengguna memilih perilaku default aplikasi di setelan rasio aspek
Nonaktifkan
Untuk memilih tidak ikut perilaku API level 36, deklarasikan
properti manifes PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY.
Untuk memilih tidak ikut aktivitas tertentu, tetapkan properti dalam elemen
<activity>:
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
Untuk memilih tidak ikut untuk seluruh aplikasi Anda, tetapkan properti di elemen <application>:
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
Pengujian
Untuk menguji apakah aplikasi Anda terpengaruh oleh perubahan Android 16, gunakan emulator seri Pixel
Tablet dan Pixel Fold di Android Studio dan tetapkan
targetSdkPreview = "Baklava" di file build.gradle modul aplikasi Anda.
Atau, gunakan framework kompatibilitas aplikasi di perangkat pengujian Anda dengan mengaktifkan tanda UNIVERSAL_RESIZABLE_BY_DEFAULT (lihat Alat framework kompatibilitas).
Anda dapat mengotomatiskan pengujian dengan framework pengujian Espresso dan API pengujian Jetpack Compose.
Panduan penerapan
Aplikasi yang membatasi orientasi perangkat, rasio aspek, atau kemampuan mengubah ukuran aplikasi mungkin mengalami masalah tampilan di Android 16, seperti tata letak yang tumpang-tindih. Untuk memberikan pengalaman pengguna yang optimal di ponsel, perangkat foldable, tablet, perangkat ChromeOS, dan lainnya, buat aplikasi Anda agar responsif dan adaptif.
Checklist kesiapan
Gunakan checklist berikut untuk membantu memastikan aplikasi Anda siap untuk perubahan Android 16:
- Hindari komponen UI yang direntangkan: Tata letak yang didesain untuk layar ponsel potret standar dapat gagal mengakomodasi rasio aspek lainnya. Misalnya, elemen UI yang mengisi seluruh lebar tampilan dapat terlihat direntangkan dalam orientasi lanskap. Tambahkan lebar maksimum ke komponen untuk menghindari peregangan.
- Aktifkan tata letak untuk di-scroll: Jika tata letak tidak di-scroll, pengguna mungkin tidak dapat mengakses tombol atau elemen UI lainnya yang berada di luar layar dalam orientasi lanskap. Aktifkan tata letak aplikasi untuk di-scroll guna memverifikasi bahwa semua konten dapat dijangkau, terlepas dari tinggi tampilan.
- Verifikasi kompatibilitas kamera dalam mode potret dan lanskap: Pratinjau jendela bidik kamera yang mengasumsikan rasio aspek dan orientasi tertentu relatif terhadap sensor kamera dapat menghasilkan pratinjau yang direntangkan atau dibalik pada tampilan yang tidak sesuai. Pastikan jendela bidik berputar dengan benar saat terjadi perubahan orientasi. Aktifkan jendela bidik untuk menyesuaikan rasio aspek UI yang berbeda dengan rasio aspek sensor.
- Pertahankan status selama perubahan ukuran jendela: Penghapusan batasan orientasi dan rasio aspek dapat menyebabkan perubahan ukuran jendela aplikasi yang sering terjadi sebagai respons terhadap preferensi pengguna dalam menggunakan aplikasi, misalnya, dengan memutar, melipat, atau membentangkan perangkat atau dengan mengubah ukuran aplikasi dalam mode multi-aplikasi atau mode jendela desktop. Perubahan konfigurasi seperti perubahan orientasi dan perubahan ukuran jendela menyebabkan pembuatan ulang aktivitas (secara default). Untuk membantu memberikan pengalaman pengguna yang optimal, pertahankan status aplikasi sehingga aplikasi Anda mempertahankan data (seperti input formulir) dan pengguna dapat mempertahankan konteks.
- Gunakan class ukuran jendela: Mendukung berbagai ukuran jendela dan rasio aspek tanpa penyesuaian khusus perangkat. Asumsikan ukuran jendela akan sering berubah. Gunakan class ukuran jendela untuk mengkarakterisasi dimensi jendela, lalu terapkan tata letak adaptif yang sesuai.
- Buat tata letak responsif: Dalam class ukuran jendela, tata letak responsif menyesuaikan perubahan dimensi tampilan untuk selalu membuat presentasi aplikasi yang optimal.
Untuk panduan praktis dalam membuat tata letak adaptif di Compose, lihat codelab Membangun aplikasi adaptif dengan Jetpack Compose. Jika Anda memigrasikan an aplikasi yang menggunakan tampilan, lihat Strategi adopsi Compose.
Linimasa
- Android 16 (2025): Dukungan untuk semua orientasi dan rasio aspek serta kemampuan mengubah ukuran aplikasi adalah pengalaman dasar untuk perangkat layar besar (lebar layar terkecil >= 600dp) untuk aplikasi yang menargetkan API level 36. Namun, developer dapat menonaktifkannya.
| Tingkat API target | Perangkat yang berlaku | Penonaktifan developer diizinkan |
|---|---|---|
| 36 (Android 16) | Perangkat layar besar (lebar layar terkecil >= 600dp) | Ya |
Batas waktu untuk menargetkan level API tertentu bersifat khusus untuk app store. Google Play akan mewajibkan aplikasi untuk menargetkan API level 36 mulai Agustus 2026.
Referensi lainnya
- Perubahan perilaku: Aplikasi yang menargetkan Android 16 atau yang lebih tinggi
- Membangun aplikasi adaptif
- Anjuran dan larangan adaptif