Aktifkan ukuran halaman 16kB

Android 15 (eksperimental AOSP) dan lebih tinggi memiliki dukungan untuk membangun Android dengan ukuran halaman 16kB. Opsi ini menggunakan memori tambahan namun meningkatkan kinerja sistem.

Halaman 16kB hanya didukung pada target arm64 dengan kernel 16kB. Namun, ada juga opsi untuk mensimulasikan ruang pengguna 16KB pada x86_64 untuk Cuttlefish.

Untuk mengaktifkan halaman 16kB, atur opsi build berikut pada perangkat:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true menghapus definisi PAGE_SIZE , dan membuat komponen menentukan ukuran halaman saat runtime.
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384 yang memastikan file platform ELF dibuat dengan penyelarasan 16kB. Ukuran yang lebih besar dari yang dibutuhkan ini adalah untuk kompatibilitas di masa mendatang. Dengan penyelarasan ELF 16kB, kernel dapat mendukung ukuran halaman 4kB/16kB.

Verifikasi tanda build

Setelah memilih target lunch , verifikasi bahwa flag build telah diatur dengan benar di lingkungan:

$ source build/envsetup.sh
$ lunch target

$ get_build_var TARGET_MAX_PAGE_SIZE_SUPPORTED
16384
$ get_build_var TARGET_NO_BIONIC_PAGE_SIZE_MACRO
true

Jika dua perintah sebelumnya masing-masing mengembalikan 16384 dan true , flag build Anda sudah diatur dengan benar.

Bangun perpustakaan bersama dengan penyelarasan ELF 16kB

Untuk membangun perpustakaan bersama yang merupakan bagian dari proyek Android , Anda hanya perlu menyetel tanda pembangunan berikut di target Anda:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384

Untuk membangun perpustakaan bersama yang bukan bagian dari proyek Android , Anda harus meneruskan tanda tautan ini:

-Wl,-z,max-page-size=16384