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 ফাইলগুলির প্রান্তিককরণ যাচাই করে।