Perubahan perilaku: semua aplikasi

Platform Android 15 menyertakan perubahan perilaku yang dapat memengaruhi aplikasi Anda. Perubahan perilaku berikut berlaku untuk semua aplikasi saat dijalankan di Android 15, terlepas dari targetSdkVersion. Anda harus menguji aplikasi, lalu memodifikasinya sesuai kebutuhan untuk mendukung perubahan ini dengan tepat, jika memungkinkan.

Selain itu, pastikan Anda meninjau daftar perubahan perilaku yang hanya memengaruhi aplikasi yang menargetkan Android 15.

Fungsi inti

Android 15 memodifikasi atau memperluas berbagai kemampuan inti sistem Android.

Perubahan pada status paket dihentikan

Tujuan dari status FLAG_STOPPED paket (yang dapat diakses pengguna dalam build AOSP dengan menekan lama ikon aplikasi dan memilih "Force Stop") adalah untuk mempertahankan aplikasi dalam status ini hingga pengguna secara eksplisit menghapus aplikasi dari status ini dengan meluncurkan aplikasi secara langsung atau secara tidak langsung berinteraksi dengan aplikasi (melalui sharesheet atau widget, memilih aplikasi sebagai wallpaper animasi, dll.). Di Android 15, kami mengupdate perilaku sistem agar selaras dengan perilaku yang dimaksudkan ini. Aplikasi hanya boleh dihapus dari status dihentikan melalui tindakan pengguna langsung atau tidak langsung.

Untuk mendukung perilaku yang dimaksud, selain pembatasan yang ada, sistem juga akan membatalkan semua intent yang tertunda saat aplikasi memasuki status dihentikan di Android 15. Saat tindakan pengguna menghapus aplikasi dari status berhenti, siaran ACTION_BOOT_COMPLETED akan dikirimkan ke aplikasi sehingga memberikan peluang untuk mendaftarkan ulang intent yang tertunda.

Anda dapat memanggil metode ApplicationStartInfo.wasForceStopped() baru untuk mengonfirmasi apakah aplikasi dialihkan ke status dihentikan.

Dukungan untuk ukuran halaman 16 KB

Sebelumnya, Android hanya mendukung ukuran halaman memori 4 KB, yang memiliki performa memori sistem yang dioptimalkan untuk jumlah rata-rata total memori yang biasanya dimiliki perangkat Android. Mulai Android 15, Android mendukung perangkat yang dikonfigurasi untuk menggunakan halaman berukuran 16 KB (perangkat 16 KB).

Karena produsen perangkat terus membangun perangkat dengan jumlah memori fisik (RAM) yang lebih besar, banyak dari perangkat ini kemungkinan akan dikonfigurasi dengan ukuran halaman 16 KB (dan pada akhirnya lebih besar) untuk mengoptimalkan performa perangkat. Menambahkan dukungan untuk perangkat berukuran 16 KB memungkinkan aplikasi Anda berjalan di perangkat ini dan membantu aplikasi mendapatkan manfaat dari peningkatan performa terkait. Untuk membantu Anda dalam hal ini, kami telah menyediakan panduan tentang cara memeriksa apakah aplikasi Anda terpengaruh, cara mem-build ulang aplikasi (jika berlaku), dan cara menguji aplikasi di lingkungan 16 KB menggunakan emulator dan perangkat fisik.

Manfaat dan peningkatan performa

Perangkat yang dikonfigurasi dengan ukuran halaman 16 KB menggunakan memori rata-rata yang sedikit lebih banyak, tetapi juga mendapatkan berbagai peningkatan performa untuk sistem dan aplikasi:

  • Waktu peluncuran aplikasi yang lebih rendah saat sistem berada di bawah tekanan memori: rata-rata 3,16% lebih rendah, dengan peningkatan yang lebih signifikan (hingga 30%) untuk beberapa aplikasi yang kami uji
  • Pengurangan penarikan daya selama peluncuran aplikasi: rata-rata penurunan 4,56%
  • Peluncuran kamera yang lebih cepat: rata-rata hot start 4,48% lebih cepat dan rata-rata cold start 6,60% lebih cepat
  • Peningkatan waktu booting sistem: meningkat rata-rata sebesar 1,5% (sekitar 0,8 detik)

Peningkatan ini didasarkan pada pengujian awal kami, dan hasil pada perangkat yang sebenarnya mungkin akan berbeda. Kami akan memberikan analisis tambahan tentang potensi keuntungan bagi aplikasi saat melanjutkan pengujian.

Periksa apakah aplikasi Anda terpengaruh

Jika aplikasi menggunakan kode native apa pun, Anda harus mem-build ulang aplikasi dengan dukungan untuk perangkat 16 KB. Jika tidak yakin apakah aplikasi menggunakan kode native atau tidak, Anda dapat menggunakan APK Analyzer untuk mengidentifikasi apakah kode native ada atau tidak.

Jika aplikasi Anda hanya menggunakan kode yang ditulis dalam bahasa pemrograman Java atau di Kotlin, termasuk semua library atau SDK, berarti aplikasi tersebut sudah mendukung perangkat 16 KB. Meskipun demikian, sebaiknya uji aplikasi Anda di lingkungan 16 KB untuk memverifikasi bahwa tidak ada regresi yang tidak terduga dalam perilaku aplikasi.

Perubahan yang diperlukan untuk beberapa aplikasi guna mendukung ruang pribadi

Ruang pribadi adalah fitur baru di Android 15 yang memungkinkan pengguna membuat ruang terpisah di perangkat mereka tempat mereka dapat menjauhkan aplikasi sensitif dari pengintip, di bawah lapisan autentikasi tambahan. Karena aplikasi di ruang pribadi memiliki visibilitas terbatas, beberapa jenis aplikasi perlu mengambil langkah tambahan agar dapat melihat dan berinteraksi dengan aplikasi di ruang pribadi pengguna.

Semua aplikasi

Karena aplikasi di ruang pribadi disimpan di profil pengguna terpisah, mirip dengan profil kerja, aplikasi tidak boleh berasumsi bahwa salinan terinstal aplikasi mereka yang tidak ada di profil utama berada di profil kerja. Jika aplikasi Anda memiliki logika yang terkait dengan aplikasi profil kerja yang membuat asumsi ini, Anda harus menyesuaikan logika ini.

Aplikasi peluncur

Jika mengembangkan aplikasi peluncur, Anda harus melakukan hal berikut sebelum aplikasi dalam ruang pribadi dapat terlihat:

  1. Aplikasi Anda harus ditetapkan sebagai aplikasi peluncur default untuk perangkat—yaitu yang memiliki peran ROLE_HOME.
  2. Aplikasi Anda harus mendeklarasikan izin normal ACCESS_HIDDEN_PROFILES dalam file manifes aplikasi.

Aplikasi peluncur yang mendeklarasikan izin ACCESS_HIDDEN_PROFILES harus menangani kasus penggunaan ruang pribadi berikut:

  1. Aplikasi harus memiliki penampung peluncur terpisah untuk aplikasi yang diinstal di ruang pribadi.
  2. Pengguna harus dapat menyembunyikan dan menampilkan penampung ruang pribadi.
  3. Pengguna harus dapat mengunci dan membuka kunci penampung ruang pribadi.
  4. Saat terkunci, tidak ada aplikasi dalam penampung ruang pribadi yang harus terlihat atau ditemukan melalui mekanisme seperti penelusuran.

Aplikasi app store

Ruang pribadi menyertakan tombol "Instal Aplikasi" yang meluncurkan intent implisit untuk menginstal aplikasi ke ruang pribadi pengguna. Agar aplikasi Anda dapat menerima intent implisit ini, deklarasikan <intent-filter> dalam file manifes aplikasi dengan <category> dari CATEGORY_APP_MARKET.

Meningkatkan versi SDK target minimum dari 23 menjadi 24

Android 15 dibuat berdasarkan perubahan yang dibuat di Android 14 dan memperluas keamanan ini lebih lanjut. Di Android 15, aplikasi dengan targetSdkVersion di bawah 24 tidak dapat diinstal. Mewajibkan aplikasi memenuhi API level modern akan membantu memastikan keamanan dan privasi yang lebih baik.

Malware sering kali menargetkan API level yang lebih rendah untuk mengabaikan perlindungan privasi dan keamanan yang telah diperkenalkan dalam versi Android yang lebih tinggi. Misalnya, beberapa aplikasi malware menggunakan targetSdkVersion dari 22 agar tidak dikenai model izin runtime yang diperkenalkan pada tahun 2015 oleh Android 6.0 Marshmallow (API level 23). Perubahan Android 15 ini mempersulit malware untuk menghindari peningkatan keamanan dan privasi. Mencoba menginstal aplikasi yang menargetkan API level yang lebih rendah akan gagal dalam penginstalan, dengan pesan seperti berikut muncul di Logcat:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

Pada perangkat yang diupgrade ke Android 15, aplikasi dengan targetSdkVersion yang lebih rendah dari 24 akan tetap diinstal.

Jika Anda perlu menguji aplikasi yang menargetkan API level lama, gunakan perintah ADB berikut:

adb install --bypass-low-target-sdk-block FILENAME.apk

Kamera dan media

Android 15 melakukan perubahan berikut pada perilaku kamera dan media untuk semua aplikasi.

Pemutaran audio langsung dan pengurangan beban kini membatalkan trek audio langsung yang dibuka sebelumnya atau memindahkan trek audio saat batas resource tercapai

Sebelum Android 15, jika aplikasi meminta pemutaran audio langsung atau memindahkan pemutaran audio saat aplikasi lain memutar audio dan batas resource tercapai, aplikasi akan gagal membuka AudioTrack baru.

Mulai Android 15, saat aplikasi meminta pemutaran langsung atau offload dan batas resource tercapai, sistem akan membatalkan semua objek AudioTrack yang saat ini terbuka sehingga mencegah pemenuhan permintaan jalur baru.

(Trek audio langsung dan offload biasanya dibuka untuk pemutaran format audio yang dikompresi. Kasus penggunaan umum untuk memutar audio langsung mencakup streaming audio yang dienkode melalui HDMI ke TV. Trek offload biasanya digunakan untuk memutar audio yang dikompresi di perangkat seluler dengan akselerasi DSP hardware.)

Pengalaman pengguna dan UI sistem

Android 15 menyertakan beberapa perubahan yang dimaksudkan untuk menciptakan pengalaman pengguna yang lebih konsisten dan intuitif.

Animasi kembali prediktif diaktifkan untuk aplikasi yang ikut serta

Mulai Android 15, opsi developer untuk animasi kembali prediktif telah dihapus. Animasi sistem seperti kembali ke layar utama, lintas tugas, dan lintas aktivitas kini muncul untuk aplikasi yang telah memilih untuk menggunakan gestur kembali prediktif baik secara keseluruhan maupun di tingkat aktivitas. Jika aplikasi Anda terpengaruh, lakukan tindakan berikut:

  • Pastikan aplikasi Anda telah dimigrasikan dengan benar untuk menggunakan gestur kembali prediktif.
  • Pastikan transisi fragmen Anda berfungsi dengan navigasi kembali prediktif.
  • Beralih dari transisi animasi dan framework, serta gunakan transisi animator dan androidx.
  • Bermigrasi dari data sebelumnya yang tidak diketahui FragmentManager. Gunakan data sebelumnya yang dikelola oleh FragmentManager atau oleh komponen Navigasi.

Penghentian penggunaan

Dengan setiap rilis, API Android tertentu mungkin tidak digunakan lagi atau perlu difaktorkan ulang untuk memberikan pengalaman developer yang lebih baik atau mendukung kemampuan platform baru. Dalam kasus ini, kami secara resmi menghentikan penggunaan API yang sudah tidak digunakan dan mengarahkan developer ke API alternatif untuk digunakan.

Penghentian penggunaan berarti kami telah mengakhiri dukungan resmi untuk API, tetapi dukungan tersebut akan tetap tersedia bagi developer. Untuk mempelajari lebih lanjut penghentian penggunaan yang signifikan dalam rilis Android ini, lihat halaman penghentian penggunaan.