Android sedang membuat peralihan ketara daripada saiz halaman memori 4KB kepada 16KB, menjanjikan peningkatan prestasi tetapi mewujudkan masalah kepada pembangun. Bermula 1 November 2025, semua aplikasi baharu dan kemas kini yang menggunakan kod asli C/C++ mesti menyokong saiz halaman yang lebih besar untuk diterima di Google Play.
Perubahan ini membawa faedah yang boleh diukur. Aplikasi boleh melihat masa pelancaran bertambah baik sehingga 30% dalam sesetengah kes, dengan purata peningkatan sebanyak 3.16%. Hayat bateri juga mendapat rangsangan, dengan penggunaan kuasa menurun sebanyak 4.56%. Masa permulaan kamera adalah 4.48-6.60% lebih pantas, dan masa but sistem bertambah baik kira-kira 0.8 saat.
Peningkatan Prestasi dengan Halaman 16KB:
- Masa pelancaran aplikasi: Sehingga 30% lebih pantas (purata 3.16%)
- Penggunaan bateri: Pengurangan 4.56% dalam penggunaan kuasa
- Permulaan kamera: 4.48-6.60% lebih pantas
- But sistem: ~0.8 saat lebih pantas
- Peningkatan prestasi keseluruhan: 5-10%
Kerumitan Tersembunyi Melangkaui Penyusunan Semula Mudah
Walaupun pengumuman Google menjadikan peralihan ini kedengaran mudah, pembangun mendapati realitinya lebih kompleks. Perbincangan komuniti mendedahkan bahawa mengalihkan pangkalan kod asli yang besar sering mendedahkan andaian masa jalan yang halus yang jauh melangkaui menggantikan pemalar berkod keras.
Kebocoran memori yang hampir tidak ketara dengan halaman 4KB menjadi masalah serius apabila halaman empat kali lebih besar. Pengumpul memori tersuai dan sistem pengumpulan yang diselaraskan untuk sempadan 4KB mungkin memerlukan reka bentuk semula yang lengkap. Sesetengah pembangun bimbang tentang menemui isu-isu ini hanya selepas aplikasi sampai kepada pengguna.
Implikasi Perlindungan Memori dan Keselamatan
Perubahan saiz halaman mempengaruhi cara perlindungan memori berfungsi pada tahap asas. Dengan halaman 4KB, pembangun boleh menetapkan kebenaran berbeza untuk kawasan 8KB berturut-turut. Halaman 16KB yang lebih besar menjadikan ini mustahil tanpa menyebabkan ranap apabila memori diakses secara salah.
Ini mewujudkan cabaran khusus untuk kod kritikal keselamatan yang bergantung pada halaman pengawal untuk menangkap limpahan penimbal. Kod yang sebelum ini mencipta sempadan pelindung pada selang 4KB kini hanya mempunyai 25% peluang untuk diselaraskan dengan betul. Perubahan ini juga mempengaruhi operasi I/O dipetakan memori, di mana blok kawalan jiran mungkin berkongsi halaman yang sama secara tidak dijangka.
Gangguan Ekosistem dan Kebimbangan Keserasian
Peralihan ini menyerlahkan ketegangan yang lebih luas antara peningkatan prestasi dan kestabilan ekosistem. Ramai pembangun mempersoalkan sama ada keuntungan prestasi purata 3% membenarkan kemungkinan merosakkan aplikasi yang tidak diselenggara tetapi berfungsi.
Segala-galanya berhenti berfungsi bukanlah pilihan untuk sistem pengendalian sebenar. Saya tidak mengharapkan untuk meletakkan alat bengkel saya dan bangun pada waktu pagi untuk mendapati pengilang peti alat menghantar mereka ke tapak pelupusan kerana mereka tidak muat dengan cekap dalam laci baharu mereka.
Perubahan ini terutamanya mempengaruhi aplikasi Android perindustrian dan terbenam, di mana peranti mungkin mempunyai jangka hayat 50 tahun tetapi bergantung pada aplikasi yang mungkin tidak menerima kemas kini. Ini mewujudkan jurang yang membimbangkan antara kitaran kemas kini Android yang berfokuskan pengguna dan keperluan kebolehpercayaan perindustrian.
Matriks Keserasian:
Jenis Aplikasi | Peranti 4KB | Peranti 16KB |
---|---|---|
Aplikasi 4KB | Berfungsi | Memerlukan peralihan |
Aplikasi 16KB | Berfungsi | Berfungsi |
Halangan Teknikal untuk Pembangun
Aplikasi yang menggunakan perpustakaan asli menghadapi cabaran paling ketara. Android NDK r28 dan Android Gradle Plugin 8.5.1 secara automatik membolehkan penjajaran 16KB, tetapi banyak SDK pihak ketiga belum dikemas kini lagi. Pembangun mesti sama ada menunggu kemas kini SDK atau bercabang dan membina semula kebergantungan sendiri.
Peralihan ini juga mempengaruhi susun atur binari ELF, di mana segmen kod dan data mesti mengekalkan penjajaran yang betul. Segmen yang tidak sejajar boleh menyebabkan ranap semasa pelaksanaan atau apabila menulis kepada pembolehubah global. Sesetengah strategi peruntukan yang berfungsi dengan cekap dengan halaman 4KB menjadi membazir dengan halaman 16KB, berpotensi menyebabkan tekanan memori pada peranti dengan RAM terhad.
Alat dan Versi yang Diperlukan:
- Android Gradle Plugin : 8.5.1 atau lebih tinggi (membolehkan penjajaran 16KB secara lalai)
- Android NDK : r28 atau lebih tinggi (kompil dengan penjajaran 16KB secara lalai)
- Ujian: Sasaran emulator 16KB tersedia dalam Android Studio SDK Manager
- Ujian peranti: Pixel 8 dan 8 Pro ke atas dengan Android 15 QPR1
Memandang ke Hadapan
Google menyediakan alat ujian termasuk emulator 16KB dan pilihan pembangun pada peranti Pixel yang lebih baharu untuk bertukar antara saiz halaman. Walau bagaimanapun, tarikh akhir November 2025 mungkin terbukti mencabar untuk aplikasi kompleks dengan kebergantungan kod asli yang mendalam.
Industri menghadapi soalan asas tentang mengimbangi keuntungan prestasi terhadap keserasian. Walaupun halaman 16KB menawarkan faedah yang jelas, peralihan mendedahkan betapa dalamnya andaian saiz halaman tertanam dalam perisian moden. Kejayaan akan bergantung pada sejauh mana pembangun boleh mengenal pasti dan membetulkan kebergantungan tersembunyi ini sebelum tarikh akhir tiba.
Rujukan: Transition to using 16 KB page sizes for Android apps and games using Android Studio