Historically, Android has only supported 4 KB memory page sizes, which has optimized system memory performance for the average amount of total memory that Android devices have typically had. Beginning with Android 15, AOSP supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.
As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will adopt 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB page size devices enables your app to run on these devices and helps your app benefit from the associated performance improvements. Without recompiling, apps won't work on 16 KB devices in future Android releases.
To help you add support for your app, we've provided guidance on how to check if your app is impacted, how to rebuild your app (if applicable), and how to test your app in a 16 KB environment using emulators (including Android 15 system images for the Android Emulator).
مزایا و افزایش عملکرد
Devices configured with 16 KB page sizes use slightly more memory on average, but also gain various performance improvements for both the system and apps:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
- Faster camera launch: 4.48% faster hot starts on average, and 6.60% faster cold starts on average
- Improved system boot time: improved by 8% (approximately 950 milliseconds) on average
These improvements are based on our initial testing, and results on actual devices will likely differ. We'll provide additional analysis of potential gains for apps as we continue our testing.
بررسی کنید که آیا برنامه شما تحت تأثیر قرار گرفته است یا خیر
If your app uses any native code, then you should rebuild your app with support for 16 KB devices. If you are unsure if your app uses native code, you can use the APK Analyzer to identify whether any native code is present and then check the alignment of ELF segments for any shared libraries that you find. Android Studio also provides features that help you to automatically detect alignment issues.
If your app only uses code written in the Java programming language or in Kotlin, including all libraries or SDKs, then your app already supports 16 KB devices. Nevertheless, we recommend that you test your app in a 16 KB environment to verify that there are no unexpected regressions in app behavior.
آیا برنامه شما از کد بومی استفاده میکند؟
اگر هر یک از موارد زیر صدق کند، برنامه شما از کد بومی استفاده میکند:
- برنامه شما از هر کد C/C++ (بومی) استفاده میکند. اگر برنامه شما از Android NDK استفاده میکند، پس برنامه شما از کد بومی استفاده میکند.
- برنامه شما با هر کتابخانه یا وابستگی بومی شخص ثالث (مانند SDK) که از آنها استفاده میکند، پیوند برقرار میکند.
- برنامه شما توسط یک سازنده برنامه شخص ثالث ساخته شده است که از کتابخانههای بومی روی دستگاه استفاده میکند.
شناسایی کتابخانههای بومی با استفاده از APK Analyzer
تحلیلگر APK ابزاری است که به شما امکان میدهد جنبههای مختلف یک APK ساخته شده را ارزیابی کنید. برای بررسی اینکه آیا برنامه شما از کد بومی استفاده میکند یا خیر (صرف نظر از اینکه با حجم ۱۶ کیلوبایت سازگار است یا خیر):
- اندروید استودیو را باز کنید، سپس روی File > Open کلیک کنید و هر پروژهای را انتخاب کنید.
از نوار منو، روی ساخت > تجزیه و تحلیل APK... کلیک کنید.

APK مورد نظر برای تجزیه و تحلیل را انتخاب کنید.
در صورت وجود، به پوشه
libکه میزبان فایلهای شیء مشترک (.so) است، نگاهی بیندازید. اگر فایلهای شیء مشترک وجود داشته باشد، برنامه شما از کد بومی استفاده میکند. ستون Alignment پیامهای هشدار دهندهای را برای هر فایلی که مشکلات ترازبندی دارد، نمایش میدهد. اگر هیچ فایل شیء مشترکی وجود ندارد یا پوشهlibوجود ندارد، برنامه شما از کد بومی استفاده نمیکند.
تشخیص مشکلات ترازبندی با بررسیهای خودکار
اندروید استودیو اگر کتابخانهها یا APKهای از پیش ساخته شده شما با حجم ۱۶ کیلوبایت سازگار نباشند، به شما هشدار میدهد. از ابزار APK Analyzer برای بررسی اینکه کدام کتابخانهها نیاز به بهروزرسانی دارند یا اینکه آیا تغییر کدی لازم است، استفاده کنید.

Lint در اندروید استودیو همچنین کتابخانههای بومی که با حجم ۱۶ کیلوبایت همتراز نیستند را هایلایت میکند.

ترازبندی بخشهای ELF را برای کتابخانههای مشترک بررسی کنید
برای هر کتابخانه اشتراکی، با استفاده از ترازبندی ELF شانزده کیلوبایتی، تأیید کنید که بخشهای ELF کتابخانههای اشتراکی به درستی تراز شدهاند. اگر در حال توسعه روی لینوکس یا macOS هستید، میتوانید از اسکریپت check_elf_alignment.sh همانطور که در بخش زیر توضیح داده شده است، استفاده کنید. همچنین میتوانید مستقیماً از ابزارهای خط فرمان استفاده کنید .
از اسکریپت check_elf_alignment.sh استفاده کنید (لینوکس یا macOS)
برای بررسی ترازبندی بخشهای ELF با استفاده از اسکریپت check_elf_alignment.sh ، این مراحل را دنبال کنید:
اسکریپت
check_elf_alignment.shرا در یک فایل ذخیره کنید.اسکریپت را روی فایل APK برنامه خود اجرا کنید:
check_elf_alignment.sh APK_NAME.apkخروجی اسکریپت برای همه کتابخانههای اشتراکی
arm64-v8aیاALIGNEDاست یاUNALIGNED.اگر هر یک از کتابخانههای اشتراکی
arm64-v8aیاx86_64UNALIGNEDهستند، باید بستهبندی آن کتابخانهها را بهروزرسانی کنید ، سپس برنامه خود را مجدداً کامپایل کرده و با دنبال کردن مراحل این بخش، دوباره تست کنید.
استفاده مستقیم از ابزارهای خط فرمان
برای بررسی ترازبندی بخشهای ELF با استفاده مستقیم از ابزارهای خط فرمان، این مراحل را دنبال کنید:
- مطمئن شوید که هم Android SDK Build-Tools نسخه 35.0.0 یا بالاتر و هم Android NDK با استفاده از SDK Manager در اندروید استودیو یا ابزار خط فرمان
sdkmanagerنصب شده باشند. فایل APK برنامه خود را استخراج کنید:
لینوکس یا macOS
unzip APK_NAME.apk -d /tmp/my_apk_outویندوز (پاورشل)
Expand-Archive -Path .\APK_NAME.apk -DestinationPath ~\tmp\my_apk_outدر دایرکتوری موقتی که فایل APK خود را در آن استخراج کردهاید، محتویات دایرکتوری
libرا برای فایلهای شیء مشترک (.so) بررسی کنید. اینها همان فایلهای شیء مشترکی هستند که هنگام شناسایی کتابخانههای بومی با استفاده از APK Analyzer دیدهاید. دستور زیر را روی هر فایل شیء مشترک اجرا کنید:لینوکس یا macOS
SDK_ROOT_LOCATION/Android/sdk/ndk/NDK_VERSION/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump -p SHARED_OBJECT_FILE.so | grep LOADویندوز (پاورشل)
SDK_ROOT_LOCATION\Android\sdk\ndk\NDK_VERSION\toolchains\llvm\prebuilt\windows-x86_64\bin\llvm-objdump.exe -p SHARED_OBJECT_FILE.so | Select-String -Pattern "LOAD"که در آن
SDK_ROOT_LOCATIONمسیر دایرکتوری است که Android SDK را در آن نصب کردهاید،SHARED_OBJECT_FILEنام فایل شیء مشترکی است که بررسی میکنید وNDK_VERSIONنسخه Android NDK است که نصب کردهاید (برای مثال،28.0.12433566). خروجی برای هر فایلی که بررسی میکنید چیزی شبیه به زیر خواهد بود:LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14 LOAD off 0x0000000000042a90 vaddr 0x0000000000043a90 paddr 0x0000000000043a90 align 2**14 LOAD off 0x0000000000046230 vaddr 0x0000000000048230 paddr 0x0000000000048230 align 2**14خطوط خروجی را بررسی کنید تا مطمئن شوید که بخشهای بارگذاری مقادیری کمتر از
2**14ندارند. اگر هر یک از بخشهای بارگذاری مقادیر2**13،2**12یا کمتر دارند، باید بستهبندی آن کتابخانهها را بهروزرسانی کنید ، سپس برنامه خود را دوباره کامپایل کنید و با دنبال کردن مراحل این بخش، دوباره تست کنید.در مرحله بعد، ابزار خط فرمان
zipalignرا روی فایل APK برنامه خود اجرا کنید:لینوکس یا macOS
SDK_ROOT_LOCATION/Android/sdk/build-tools/35.0.0/zipalign -v -c -P 16 4 APK_NAME.apkویندوز (پاورشل)
SDK_ROOT_LOCATION\Android\sdk\build-tools\35.0.0\zipalign.exe -v -c -P 16 4 APK_NAME.apkکه در آن
SDK_ROOT_LOCATIONمسیر دایرکتوری است که SDK اندروید را در آن نصب کردهاید وAPK_NAMEنام فایل APK برنامه شماست. اگر همه کتابخانههای اشتراکی به درستی تراز شده باشند، آخرین خط خروجی عبارت "تأیید موفقیتآمیز" را نشان میدهد.اگر تأیید ناموفق بود، برخی از کتابخانههای اشتراکی نیاز به تنظیم مجدد دارند، بنابراین باید بستهبندی آن کتابخانهها را بهروزرسانی کنید ، سپس برنامه خود را دوباره کامپایل کنید و با دنبال کردن مراحل این بخش، دوباره تست کنید.
برنامه خود را با پشتیبانی از دستگاههای ۱۶ کیلوبایتی بسازید
اگر برنامه شما از کد بومی استفاده میکند، مراحلی را که در بخشهای زیر ذکر شده است، انجام دهید تا مطمئن شوید که برنامه شما از دستگاههای ۱۶ کیلوبایتی پشتیبانی میکند:
- بستهبندی کتابخانههای اشتراکی خود را بهروزرسانی کنید
- برنامه خود را با استفاده از ترازبندی ELF با حجم ۱۶ کیلوبایت کامپایل کنید
- اصلاح کد و حل مشکلات زمان اجرا
- بررسی پشتیبانی SDKها از ۱۶ کیلوبایت
بستهبندی کتابخانههای اشتراکی خود را بهروزرسانی کنید
توصیه میکنیم که به نسخه AGP 8.5.1 یا بالاتر ارتقا دهید و از کتابخانههای اشتراکی غیرفشرده استفاده کنید.
نسخه AGP 8.5.1 یا بالاتر
دستگاههای ۱۶ کیلوبایتی برای تراز کردن برنامههایی که با کتابخانههای اشتراکی غیرفشرده ارائه میشوند، روی یک مرز ۱۶ کیلوبایتی زیپشده به برنامههایی نیاز دارند که آنها را همتراز کند. برای انجام این کار، باید افزونهی اندروید گریدل (AGP) را به نسخه ۸.۵.۱ یا بالاتر ارتقا دهید. برای جزئیات بیشتر در مورد فرآیند ارتقا، به بخش دستیار ارتقاء افزونهی اندروید گریدل مراجعه کنید.
نسخه AGP 8.5 یا پایینتر
اگر نمیتوانید AGP را به نسخه ۸.۵.۱ یا بالاتر ارتقا دهید، راه حل جایگزین این است که از کتابخانههای اشتراکی فشرده استفاده کنید. پیکربندی Gradle خود را بهروزرسانی کنید تا Gradle هنگام بستهبندی برنامه، کتابخانههای اشتراکی شما را فشرده کند تا از مشکلات نصب برنامه با کتابخانههای اشتراکی ناهمتراز جلوگیری شود.
گرووی
در فایل build.gradle خود، گزینه زیر را اضافه کنید:
android {
...
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}
کاتلین
در فایل build.gradle.kts خود، گزینه زیر را اضافه کنید:
android {
...
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
}
برنامه خود را با استفاده از ترازبندی ELF با حجم ۱۶ کیلوبایت کامپایل کنید
دستگاههای ۱۶ کیلوبایتی برای اجرای برنامه شما نیاز دارند که بخشهای ELF کتابخانههای اشتراکی با استفاده از ترازبندی ELF ۱۶ کیلوبایتی به درستی تراز شوند.
برای توسعهدهندگان بازی، اگر بازی شما با موتور بازی Unity اجرا میشود، به راهنمای Unity مراجعه کنید. اگر بازی شما با موتور بازی Unreal اجرا میشود، به راهنمای Unreal مراجعه کنید. برای موتورهای بازی native، با این راهنما ادامه دهید.
برای کامپایل برنامه خود با استفاده از ترازبندی ELF با حجم ۱۶ کیلوبایت، بسته به نسخه Android NDK مورد استفاده خود، مراحل یکی از بخشهای زیر را انجام دهید.
اندروید NDK نسخه r28 و بالاتر
نسخه NDK r28 و بالاتر به طور پیشفرض با حجم ۱۶ کیلوبایت کامپایل میشود.
اندروید NDK r27
برای پشتیبانی از کامپایل کتابخانههای اشتراکی ۱۶ کیلوبایتی با اندروید NDK نسخه r27 و بالاتر، باید پرچمهای ndk-build ، build.gradle ، build.gradle.kts یا linker خود را به شرح زیر بهروزرسانی کنید:
ساخت ndk
در Application.mk شما:
APP_SUPPORT_FLEXIBLE_PAGE_SIZES := true
گرووی
در فایل build.gradle خود، آرگومان -DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON را تنظیم کنید:
android {
...
defaultConfig {
...
// This block is different from the one you use to link Gradle
// to your CMake or ndk-build script.
externalNativeBuild {
// For ndk-build, instead use the ndkBuild block.
cmake {
// Passes optional arguments to CMake.
arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
}
}
}
}
کاتلین
در فایل build.gradle.kts خود، آرگومان -DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON را تنظیم کنید:
android {
...
defaultConfig {
...
// This block is different from the one you use to link Gradle
// to your CMake or ndk-build script.
externalNativeBuild {
// For ndk-build, instead use the ndkBuild block.
cmake {
// Passes optional arguments to CMake.
arguments += listOf("-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON")
}
}
}
}
سایر سیستمهای ساخت
پرچمهای لینکر زیر را مشخص کنید:
-Wl,-z,max-page-size=16384
اندروید NDK نسخه r26 و پایینتر
همیشه NDK خود را بهروزرسانی کنید. این فقط باید به عنوان آخرین راه حل استفاده شود و هیچ پشتیبانی تضمین شدهای وجود ندارد.
برای پشتیبانی از کامپایل کتابخانههای اشتراکی ۱۶ کیلوبایتی با اندروید NDK نسخه r26 یا پایینتر، باید پیکربندی ndk-build یا cmake خود را به شرح زیر بهروزرسانی کنید:
ساخت ndk
برای فعال کردن ترازبندی ELF با حجم ۱۶ کیلوبایت، Android.mk خود را بهروزرسانی کنید:
LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
سیمیک
CMakeLists.txt خود را بهروزرسانی کنید تا ترازبندی ELF با حجم ۱۶ کیلوبایت فعال شود:
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,max-page-size=16384")
اندروید NDK نسخه r22 و پایینتر سازگار نیست.
همیشه NDK خود را بهروزرسانی کنید. این فقط باید به عنوان آخرین راه حل استفاده شود و هیچ پشتیبانی تضمین شدهای وجود ندارد.
علاوه بر مراحل مربوط به NDK r26 و پایینتر، common-page-size=16384 میتواند اشکالات موجود در لینکرهای قدیمی GNU ld و LLVM lld را برطرف کند. این تنها در صورتی کار میکند که ELF بخش .relro_padding را نیز داشته باشد. این به نسخه لینکر و برنامه خاصی که نوشته شده است بستگی دارد. هیچ پشتیبانی برای این نسخههای NDK وجود ندارد و اگر کار نمیکند، قبل از گزارش هرگونه مشکل، نسخه NDK را بهروزرسانی کنید.
اصلاح کد و حل مشکلات زمان اجرا
حتی اگر برنامه شما ۱۶ کیلوبایت حجم داشته باشد، اگر بخشهایی از کد شما فرض کنند که یک دستگاه از اندازه صفحه خاصی استفاده میکند، برنامه شما میتواند با خطا مواجه شود. برای جلوگیری از این مشکل، مراحل زیر را انجام دهید:
هرگونه وابستگیِ کدنویسیشدهی سخت که به ثابت
PAGE_SIZEارجاع میدهند یا مواردی در منطق کد شما که فرض میکنند اندازهی صفحهی دستگاه ۴ کیلوبایت (4096) است را حذف کنید.به جای آن از
getpagesize()یاsysconf(_SC_PAGESIZE)استفاده کنید.به دنبال کاربردهای
mmap()و سایر APIهایی باشید که به آرگومانهای همتراز با صفحه نیاز دارند و در صورت لزوم آنها را با جایگزینهای مناسب جایگزین کنید.
در برخی موارد، اگر برنامه شما از PAGE_SIZE به عنوان یک مقدار مناسب که به اندازه صفحه اصلی وابسته نیست استفاده کند، این باعث نمیشود که برنامه شما هنگام استفاده در حالت ۱۶ کیلوبایت از کار بیفتد. با این حال، اگر این مقدار با mmap و بدون MAP_FIXED به هسته منتقل شود، هسته همچنان از کل صفحه استفاده میکند که مقداری از حافظه را هدر میدهد. به همین دلایل، PAGE_SIZE هنگام فعال بودن حالت ۱۶ کیلوبایت در NDK r27 و بالاتر تعریف نشده است.
اگر برنامه شما از PAGE_SIZE به این روش استفاده میکند و هرگز این مقدار را مستقیماً به هسته ارسال نمیکند، به جای استفاده از PAGE_SIZE ، یک متغیر جدید با نام جدید ایجاد کنید تا نشان دهد که برای اهداف دیگری استفاده میشود و یک صفحه حافظه واقعی را منعکس نمیکند.
بررسی پشتیبانی SDKها از ۱۶ کیلوبایت
بسیاری از SDKها با اندازه صفحات ۱۶ کیلوبایتی سازگار هستند، به خصوص اگر خودتان آنها را بسازید یا از نسخههای پیشساخته اخیر استفاده کنید. با این حال، از آنجا که برخی از نسخههای پیشساخته SDK یا نسخههای SDK با ۱۶ کیلوبایت سازگار نیستند، باید وبسایت هر ارائهدهنده SDK را بررسی کنید تا مشخص شود از کدام نسخه با ۱۶ کیلوبایت استفاده کنید.
برنامه خود را در یک محیط ۱۶ کیلوبایتی آزمایش کنید
بعد از اینکه برنامه خود را با پشتیبانی از دستگاههای ۱۶ کیلوبایتی ساختید، باید برنامه خود را در یک محیط ۱۶ کیلوبایتی آزمایش کنید تا ببینید آیا برنامه شما با پسرفت مواجه میشود یا خیر. برای انجام این کار، این مراحل را دنبال کنید:
SDK اندروید ۱۵ یا بالاتر را نصب کنید.
یکی از محیطهای آزمایش زیر را تنظیم کنید:
دستگاه آزمایشی خود را راهاندازی کنید، سپس دستور زیر را اجرا کنید تا تأیید کنید که از یک محیط ۱۶ کیلوبایتی استفاده میکند:
adb shell getconf PAGE_SIZEاین دستور باید مقدار
16384را برگرداند.دستور
zipalignزیر را اجرا کنید تا تأیید کنید که برنامه شما 16 کیلوبایت حجم دارد، که در آن APK_NAME نام فایل APK برنامه شماست:zipalign -c -P 16 -v 4 APK_NAME.apkبرنامه خود را به طور کامل آزمایش کنید، و روی هر بخشی که ممکن است تحت تأثیر تغییر نمونههای کدی که به اندازههای خاص صفحه اشاره دارند، قرار گیرد، تمرکز کنید.
شبیهساز اندروید را با یک ایمیج سیستمی مبتنی بر ۱۶ کیلوبایت راهاندازی کنید
برای تنظیم یک محیط ۱۶ کیلوبایتی با استفاده از شبیهساز اندروید، مراحل زیر را دنبال کنید:
- در اندروید استودیو، روی ابزارها > مدیر SDK کلیک کنید.
در تب SDK Platforms ، گزینه Show Package Details را تیک بزنید، سپس بخش Android VanillaIceCream یا بالاتر را باز کنید و بسته به دستگاههای مجازی که میخواهید ایجاد کنید، یک یا هر دو تصویر سیستم شبیهساز زیر را انتخاب کنید:
- تصویر آزمایشی رابطهای برنامهنویسی کاربردی گوگل، ۱۶ کیلوبایت، اندازه صفحه، ARM 64 v8a
- تصویر آزمایشی رابطهای برنامهنویسی کاربردی گوگل، حجم صفحه ۱۶ کیلوبایت، سیستم اتم اینتل x86_64

برای دانلود هر کدام از تصاویر سیستمی که انتخاب کردهاید، روی «اعمال» > «تأیید» کلیک کنید.
مراحل راهاندازی یک دستگاه مجازی برای اندروید ۱۵ را دنبال کنید و وقتی از شما خواسته شد یک تصویر سیستمی انتخاب کنید، تصویر سیستمی ۱۶ کیلوبایتی را که دانلود کردهاید انتخاب کنید. اگر به طور خودکار توصیه نشد، میتوانید تصویر سیستمی ۱۶ کیلوبایتی را در تب «سایر تصاویر» پیدا کنید.

شبیهساز را اجرا کنید
پس از اتمام راهاندازی شبیهساز اندروید و دستگاههای مجازی، شبیهساز را از منوی دستگاه هدف یا از خط فرمان اجرا کنید.
Enable 16 KB mode on a device using developer options
Toggle the Boot with 16KB page size developer option to boot a device in 16 KB mode.
In QPR versions of Android 15, you can use the developer option that's available on certain devices to boot the device in 16 KB mode and perform on-device testing. Before using the developer option, go to Settings > System > Software updates and apply any updates that are available.
This developer option is available on the following devices:
Pixel 8 and 8 Pro (with Android 15 QPR1 or higher)
Pixel 8a (with Android 15 QPR1 or higher)
Pixel 9, 9 Pro, and 9 Pro XL (with Android 15 QPR2 Beta 2 or higher)
حالت بککامپایت ۱۶ کیلوبایتی

هشدار در حالت تطبیق اندازه صفحه
گزینه backcompat 16 کیلوبایتی زمانی در دسترس است که دستگاهی با هسته 16 کیلوبایتی در حال اجرا باشد. مدیر بسته، برنامهای را در حالت backcompat 16 کیلوبایتی اجرا میکند، زمانی که شرایط زیر برآورده شود:
- اگر برنامه دارای فایلهای ELF (با پسوند
.so) با ترازبندی سگمنت LOAD به اندازه ۴ کیلوبایت باشد. - اگر فایل APK فشردهشده حاوی فایلهای ELF غیرفشرده باشد که با فرمت ZIP به حجم ۴ کیلوبایت همتراز شدهاند.
اگر مدیر بسته حالت backcompat 16 کیلوبایتی را برای یک برنامه فعال کرده باشد، برنامه هنگام اولین اجرای خود هشداری مبنی بر اجرای آن در حالت backcompat 16 کیلوبایتی نمایش میدهد.
حالت backcompat با حجم ۱۶ کیلوبایت به برخی از برنامهها اجازه کار میدهد، اما برای بهترین قابلیت اطمینان و پایداری، برنامهها همچنان باید با حجم ۱۶ کیلوبایت هماهنگ باشند.
در صفحه اطلاعات برنامه، در قسمت پیشرفته (Advanced )، تنظیمات اجرای برنامه با حالت سازگاری اندازه صفحه (Run app with page size compat mode) را تغییر دهید تا حالت سازگاری ۱۶ کیلوبایتی (۱۶ KB backcompat mode) برای برنامه خاص فعال یا غیرفعال شود. این تنظیم فقط زمانی قابل مشاهده است که دستگاه با اندازه صفحه ۱۶ کیلوبایت در حال اجرا باشد.

تنظیم حالت تطبیق اندازه صفحه
برای فعال کردن ۱۶ کیلوبایت فضای ذخیرهسازی Backcompat برای هر برنامه روی دستگاه:
adb shell setprop bionic.linker.16kb.app_compat.enabled true
adb shell setprop pm.16kb.app_compat.disabled false
برای غیرفعال کردن ۱۶ کیلوبایت فضای ذخیرهسازی پشتیبان برای هر برنامه روی دستگاه:
adb shell setprop bionic.linker.16kb.app_compat.enabled false
adb shell setprop pm.16kb.app_compat.disabled true
برای فعال یا غیرفعال کردن حالت backcompat برای یک برنامه خاص در AndroidManifest.xml ، ویژگی android:pageSizeCompat روی enabled یا disabled تنظیم کنید. وقتی این ویژگی تنظیم شود، برنامه هنگام راهاندازی هشدارهای حالت backcompat را نمایش نمیدهد.
الزامات سازگاری با گوگل پلی
از آنجایی که تولیدکنندگان دستگاهها، دستگاههای خود را به رم بیشتری برای بهینهسازی عملکرد مجهز میکنند، بسیاری از آنها اندازه صفحات بزرگتری مانند ۱۶ کیلوبایت را اتخاذ خواهند کرد. برای آمادهسازی برای عرضه این دستگاههای آینده، گوگل پلی یک الزام سازگاری جدید را معرفی میکند: از اول نوامبر ۲۰۲۵، همه برنامههای جدید و بهروزرسانیهای برنامههای موجود که به گوگل پلی ارسال میشوند و دستگاههایی را هدف قرار میدهند که اندروید ۱۵ (سطح API ۳۵) و بالاتر را اجرا میکنند، باید از اندازه صفحات ۱۶ کیلوبایت پشتیبانی کنند.
برای مطالعه بیشتر در مورد این الزام سازگاری، به این پست وبلاگ مراجعه کنید.