تمكين حجم الصفحة 16 كيلو بايت

يتمتع Android 15 (AOSP التجريبي) والإصدارات الأحدث بدعم لبناء Android بحجم صفحة يبلغ 16 كيلو بايت. يستخدم هذا الخيار ذاكرة إضافية ولكنه يعمل على تحسين أداء النظام.

لا يتم دعم الصفحات بحجم 16 كيلو بايت إلا على أهداف arm64 التي تحتوي على نواة بحجم 16 كيلو بايت. ومع ذلك، هناك أيضًا خيار لمحاكاة مساحة مستخدم تبلغ 16 كيلو بايت على x86_64 لـ Cuttlefish.

لتمكين صفحات بحجم 16 كيلو بايت، قم بتعيين خيارات البناء التالية على الجهاز:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true يزيل تعريف PAGE_SIZE ، ويجعل المكونات تحدد حجم الصفحة في وقت التشغيل.
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384 والذي يضمن إنشاء ملفات ELF للنظام الأساسي بمحاذاة تبلغ 16 كيلو بايت. هذا الحجم الأكبر من المطلوب مخصص للتوافق في المستقبل. مع محاذاة 16 كيلو بايت ELF، يمكن للنواة أن تدعم أحجام صفحات 4 كيلو بايت/16 كيلو بايت.

التحقق من بناء الأعلام

بعد تحديد هدف lunch ، تأكد من إعداد إشارات البناء بشكل صحيح في البيئة:

$ 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

إذا أعاد الأمران السابقان 16384 true على التوالي، فقد تم إعداد إشارات البناء الخاصة بك بشكل صحيح.

أنشئ مكتبات مشتركة بمحاذاة ELF بحجم 16 كيلو بايت

لإنشاء مكتبات مشتركة تشكل جزءًا من مشروع android ، ما عليك سوى تعيين علامات البناء هذه في هدفك:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384

لإنشاء مكتبات مشتركة ليست جزءًا من مشروع android ، يلزمك تمرير علامة الرابط هذه:

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