16 KB পৃষ্ঠার আকার সক্ষম করুন৷

Android 15 (AOSP পরীক্ষামূলক) এবং উচ্চতর 16 KB পৃষ্ঠার আকারের সাথে Android তৈরির জন্য সমর্থন রয়েছে। এই বিকল্পটি অতিরিক্ত মেমরি ব্যবহার করে কিন্তু সিস্টেমের কর্মক্ষমতা উন্নত করে।

16 KB পৃষ্ঠাগুলি শুধুমাত্র arm64 টার্গেটে 16 KB কার্নেল সহ সমর্থিত। যাইহোক, কাটলফিশের জন্য x86_64 এ 16 KB ইউজারস্পেস সিমুলেট করার একটি বিকল্পও রয়েছে।

16 KB পৃষ্ঠাগুলি সক্ষম করতে, একটি ডিভাইসে নিম্নলিখিত বিল্ড বিকল্পগুলি সেট করুন:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true PAGE_SIZE সংজ্ঞায়িত সরিয়ে দেয় এবং এটি রানটাইমে পৃষ্ঠার আকার নির্ধারণ করে।
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384 যা নিশ্চিত করে যে প্ল্যাটফর্ম ELF ফাইলগুলি 16 KB প্রান্তিককরণের সাথে তৈরি করা হয়েছে৷ প্রয়োজনের চেয়ে বড় এই আকারটি ভবিষ্যতের সামঞ্জস্যের জন্য। 16 KB ELF প্রান্তিককরণের সাথে, কার্নেল 4 KB/16 KB পৃষ্ঠার আকার সমর্থন করতে পারে।

বিল্ড পতাকা যাচাই করুন

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 প্রদান করলে, আপনার বিল্ড পতাকা সঠিকভাবে সেট আপ করা হয়েছে।

16 KB ELF প্রান্তিককরণের সাথে শেয়ার্ড লাইব্রেরি তৈরি করুন৷

শেয়ার্ড লাইব্রেরিগুলি তৈরি করতে যা অ্যান্ড্রয়েড প্রকল্পের অংশ, আপনাকে শুধুমাত্র এই বিল্ড পতাকাগুলি আপনার লক্ষ্যে সেট করতে হবে:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384

শেয়ার্ড লাইব্রেরি তৈরি করতে যা অ্যান্ড্রয়েড প্রকল্পের অংশ নয়, আপনাকে এই লিঙ্কার পতাকাটি পাস করতে হবে:

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

16 KB ELF প্রান্তিককরণের জন্য বাইনারি এবং প্রিবিল্ট যাচাই করুন

প্রান্তিককরণ এবং রানটাইম আচরণ যাচাই করার সর্বোত্তম উপায় হল একটি 16 KB সংকলিত কার্নেল পরীক্ষা করা এবং চালানো। যাইহোক, আগে কিছু সমস্যা ধরার জন্য:

  • Android W (AOSP পরীক্ষামূলক) থেকে শুরু করে, আপনি বিল্ড টাইমে PRODUCT_CHECK_PREBUILT_MAX_PAGE_SIZE := true সেট করতে পারেন। সাময়িকভাবে উপেক্ষা করতে ignore_max_page_size: true Android.bp এ সত্য এবং LOCAL_IGNORE_MAX_PAGE_SIZE := true Android.mk এ সত্য। এই সেটিংসগুলি সমস্ত পূর্বনির্মাণগুলি যাচাই করে এবং আপনাকে সনাক্ত করার অনুমতি দেয় যখন একটি আপডেট করা হয় কিন্তু 16 KB সারিবদ্ধ নয়।

  • আপনি atest elf_alignment_test চালাতে পারেন যা Android 15 (AOSP পরীক্ষামূলক) এবং পরবর্তীতে চালু হওয়া ডিভাইসগুলিতে অন-ডিভাইস ELF ফাইলগুলির প্রান্তিককরণ যাচাই করে।