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