16kB sayfa boyutunu etkinleştir

Android 15 (AOSP deneysel) ve üzeri, 16 kB sayfa boyutunda Android oluşturma desteğine sahiptir. Bu seçenek ek bellek kullanır ancak sistem performansını artırır.

16kB sayfalar yalnızca 16kB çekirdekli arm64 hedeflerinde desteklenir. Ancak Mürekkepbalığı için x86_64 üzerinde 16KB kullanıcı alanını simüle etme seçeneği de mevcuttur.

16kB sayfaları etkinleştirmek için cihazda aşağıdaki oluşturma seçeneklerini ayarlayın:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true PAGE_SIZE tanımını kaldırır ve bileşenlerin çalışma zamanında sayfa boyutunu belirlemesini sağlar.
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384 , platform ELF dosyalarının 16kB hizalamayla oluşturulmasını sağlar. İhtiyaç duyulandan daha büyük olan bu boyut, gelecekteki uyumluluk içindir. 16kB ELF hizalaması ile çekirdek 4kB/16kB sayfa boyutlarını destekleyebilir.

Derleme bayraklarını doğrulayın

lunch hedefini seçtikten sonra yapı bayraklarının ortamda doğru şekilde ayarlandığını doğrulayın:

$ 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

Önceki iki komut sırasıyla 16384 ve true döndürüyorsa derleme bayraklarınız doğru şekilde ayarlanmış demektir.

16kB ELF hizalaması ile paylaşılan kitaplıklar oluşturun

Android projesinin parçası olan paylaşılan kütüphaneler oluşturmak için yalnızca şu derleme bayraklarını hedefinizde ayarlamanız gerekir:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384

Android projesinin parçası olmayan paylaşılan kütüphaneler oluşturmak için bu bağlayıcı bayrağını iletmeniz gerekir:

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