Android 15 (AOSP পরীক্ষামূলক) এবং উচ্চতর 16kB পৃষ্ঠার আকারের সাথে Android তৈরির জন্য সমর্থন করে। এই বিকল্পটি অতিরিক্ত মেমরি ব্যবহার করে কিন্তু সিস্টেমের কর্মক্ষমতা উন্নত করে।
16kB পৃষ্ঠাগুলি শুধুমাত্র 16kB কার্নেল সহ arm64
লক্ষ্যে সমর্থিত। যাইহোক, Cuttlefish-এর জন্য x86_64
এ 16KB ইউজারস্পেস সিমুলেট করার একটি বিকল্পও রয়েছে।
16kB পৃষ্ঠাগুলি সক্ষম করতে, একটি ডিভাইসে নিম্নলিখিত বিল্ড বিকল্পগুলি সেট করুন:
-
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
PAGE_SIZE
সংজ্ঞায়িত সরিয়ে দেয় এবং এটি রানটাইমে পৃষ্ঠার আকার নির্ধারণ করে। -
PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
যা নিশ্চিত করে যে প্ল্যাটফর্ম ELF ফাইলগুলি 16kB প্রান্তিককরণের সাথে তৈরি করা হয়েছে৷ প্রয়োজনের চেয়ে বড় এই আকারটি ভবিষ্যতের সামঞ্জস্যের জন্য। 16kB ELF প্রান্তিককরণের সাথে, কার্নেল 4kB/16kB পৃষ্ঠার আকার সমর্থন করতে পারে।
বিল্ড পতাকা যাচাই করুন
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
প্রদান করলে, আপনার বিল্ড পতাকা সঠিকভাবে সেট আপ করা হয়েছে।
16kB ELF প্রান্তিককরণের সাথে শেয়ার্ড লাইব্রেরি তৈরি করুন
শেয়ার্ড লাইব্রেরিগুলি তৈরি করতে যা অ্যান্ড্রয়েড প্রকল্পের অংশ, আপনাকে শুধুমাত্র এই বিল্ড পতাকাগুলি আপনার লক্ষ্যে সেট করতে হবে:
-
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
-
PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
শেয়ার্ড লাইব্রেরি তৈরি করতে যা অ্যান্ড্রয়েড প্রকল্পের অংশ নয়, আপনাকে এই লিঙ্কার পতাকাটি পাস করতে হবে:
-Wl,-z,max-page-size=16384