پشتیبانی از اندازه صفحه 16 کیلوبایت

16 کیلوبایت مورد نیاز سازگاری با Google Play
از اول نوامبر 2025، همه برنامه‌های جدید و به‌روزرسانی‌های برنامه‌های موجود که به Google Play ارسال شده و دستگاه‌های Android 15 و بالاتر را هدف قرار می‌دهند، باید از اندازه صفحه 16 کیلوبایت در دستگاه‌های 64 بیتی پشتیبانی کنند.

Android 过去仅支持 4 KB 内存页面大小, 优化了系统内存性能,以针对 Android 设备通常具备的功能。从 Android 15 开始,AOSP 支持 配置为使用 16 KB (16 KB) 页面大小的设备 设备)。如果您的应用使用任何 NDK 库,请直接使用 或者通过 SDK 间接创建,那么,您需要重新构建自己的应用 支持这些 16KB 设备。

随着设备制造商不断打造出 物理内存 (RAM),许多此类设备都会采用 16KB(以及 页面大小以优化设备的性能。正在添加 支持 16 KB 页面大小的设备,可使您的应用在这些设备上运行 并有助于您的应用从相关的广告效果中获益 改进。如果不重新编译,应用可能无法在 16KB 设备上运行 在未来的 Android 版本中正式推出。

为帮助您为应用添加支持,我们提供了有关如何检查 如果您的应用受到影响 重新构建您的应用(如果适用),以及如何在 Google Play 中 使用模拟器(包括 Android 15)的 16 KB 环境 系统映像)。

مزایا و دستاوردهای عملکرد

配置为使用 16 KB 页面大小的设备平均会使用略多一些的内存,但系统和应用的性能也会得到各种提升:

  • 缩短了系统内存压力时的应用启动时间:平均降低了 3.16%;对于我们测试的某些应用而言,改进幅度更大(最高可达 30%)
  • 应用启动期间的功耗降低:平均降低了 4.56%
  • 相机启动更快:热启动速度平均提高了 4.48%,冷启动速度平均提高了 6.60%
  • 缩短了系统启动时间:平均缩短了 8%(约 950 毫秒)

这些改进基于我们的初始测试,实际设备上的结果可能会有所不同。随着测试的继续进行,我们将进一步分析应用的潜在收益。

بررسی کنید که آیا برنامه شما تحت تأثیر قرار گرفته است

如果您的应用使用了任何原生代码,则应重新构建应用以支持 16 KB 设备。如果您不确定自己的应用是否使用了原生代码,可以使用 APK 分析器确定是否存在任何原生代码,然后检查您找到的任何共享库的 ELF 段对齐情况

如果您的应用仅使用以 Java 或 Kotlin 编程语言编写的代码(包括所有库或 SDK),则该应用已经支持 16 KB 设备。不过,我们建议您在 16 KB 环境中测试应用,以验证应用行为是否没有意外回归。

آیا برنامه شما از کد بومی استفاده می کند؟

اگر یکی از موارد زیر اعمال شود، برنامه شما از کد بومی استفاده می کند:

  • برنامه شما از هر کد C/C++ (بومی) استفاده می کند. اگر برنامه شما از Android NDK استفاده می کند، برنامه شما از کد بومی استفاده می کند.
  • برنامه شما با هر کتابخانه بومی شخص ثالث یا وابستگی (مانند SDK) که از آنها استفاده می کند پیوند دارد.
  • برنامه شما توسط یک برنامه ساز شخص ثالث ساخته شده است که از کتابخانه های بومی در دستگاه استفاده می کند.

کتابخانه های بومی را با استفاده از APK Analyzer شناسایی کنید

APK Analyzer ابزاری است که به شما امکان می دهد جنبه های مختلف یک APK ساخته شده را ارزیابی کنید. برای بررسی اینکه آیا برنامه شما از کد بومی استفاده می کند (صرف نظر از اینکه با ۱۶ کیلوبایت سازگار است یا خیر):

  1. Android Studio را باز کنید، سپس روی File > Open کلیک کنید و هر پروژه را انتخاب کنید.
  2. از نوار منو، روی Build > Analyze APK کلیک کنید...

    گزینه منوی Studio Build برای راه اندازی APK آنالایزر

  3. APK مورد نظر برای تجزیه و تحلیل را انتخاب کنید.

  4. به داخل پوشه lib نگاه کنید، که در صورت وجود فایل‌های شی اشتراک‌گذاری شده ( .so ) را میزبانی می‌کند. اگر هر فایل شی مشترکی وجود دارد، برنامه شما از کد بومی استفاده می کند. اگر هیچ فایل شی مشترکی وجود ندارد یا پوشه lib وجود ندارد، برنامه شما از کد بومی استفاده نمی کند.

    نمای APK Analyzer که نشان می دهد فایل های اشیاء مشترک هستند حاضر

تراز بخش های ELF را برای کتابخانه های مشترک بررسی کنید

برای هر کتابخانه مشترک، بررسی کنید که بخش‌های ELF کتابخانه‌های مشترک با استفاده از تراز ELF 16 کیلوبایتی به درستی تراز شده باشند. اگر در حال توسعه بر روی لینوکس یا macOS هستید، می توانید از اسکریپت check_elf_alignment.sh همانطور که در بخش زیر توضیح داده شده است استفاده کنید. همچنین می توانید مستقیماً از ابزارهای خط فرمان استفاده کنید .

از اسکریپت check_elf_alignment.sh (لینوکس یا macOS) استفاده کنید

این مراحل را برای بررسی تراز بخش‌های ELF با استفاده از اسکریپت check_elf_alignment.sh دنبال کنید:

  1. اسکریپت check_elf_alignment.sh را در یک فایل ذخیره کنید.

  2. اسکریپت را روی فایل APK برنامه خود اجرا کنید:

    check_elf_alignment.sh APK_NAME.apk
    

    خروجی اسکریپت ALIGNED یا UNALIGNED برای همه کتابخانه های مشترک arm64-v8a است.

  3. اگر هر کدام از کتابخانه‌های مشترک arm64-v8a یا x86_64 UNALIGNED هستند، باید بسته‌بندی آن کتابخانه‌ها را به‌روزرسانی کنید ، سپس برنامه خود را مجدداً کامپایل کرده و با دنبال کردن مراحل این بخش مجدداً آزمایش کنید.

از ابزارهای خط فرمان به طور مستقیم استفاده کنید

این مراحل را برای بررسی تراز بخش های ELF با استفاده از ابزارهای خط فرمان به طور مستقیم دنبال کنید:

  1. مطمئن شوید که Android SDK Build-Tools نسخه 35.0.0 یا بالاتر و Android NDK با استفاده از مدیریت SDK در Android Studio یا ابزار خط فرمان sdkmanager نصب شده باشند.
  2. فایل APK برنامه خود را استخراج کنید:

    لینوکس یا macOS

    unzip APK_NAME.apk -d /tmp/my_apk_out
    

    ویندوز (PowerShell)

    Expand-Archive -Path .\APK_NAME.apk -DestinationPath ~\tmp\my_apk_out
    
  3. در دایرکتوری موقتی که فایل 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
    

    ویندوز (PowerShell)

    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 نسخه NDK Android است که نصب کرده‌اید (به عنوان مثال، 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
    
  4. خطوط خروجی را بررسی کنید تا مطمئن شوید که قطعات بار مقادیر کمتر از 2**14 ندارند. اگر هر بخش بارگذاری دارای مقادیر 2**13 ، 2**12 یا کمتر باشد، باید بسته بندی آن کتابخانه ها را به روز کنید ، سپس برنامه خود را مجدداً کامپایل کرده و با دنبال کردن مراحل این بخش مجدداً آزمایش کنید.

  5. سپس، ابزار خط فرمان zipalign را در فایل APK برنامه خود اجرا کنید:

    لینوکس یا macOS

    SDK_ROOT_LOCATION/Android/sdk/build-tools/35.0.0/zipalign -v -c -P 16 4 APK_NAME.apk
    

    ویندوز (PowerShell)

    SDK_ROOT_LOCATION\Android\sdk\build-tools\35.0.0\zipalign.exe -v -c -P 16 4 APK_NAME.apk
    

    جایی که SDK_ROOT_LOCATION مسیر دایرکتوری است که Android SDK را در آن نصب کرده‌اید و APK_NAME نام فایل APK برنامه شما است. اگر تمام کتابخانه های مشترک به درستی تراز شوند، آخرین خط خروجی می گوید "تأیید موفقیت آمیز".

    اگر راستی‌آزمایی انجام نشد، برخی از کتابخانه‌های مشترک نیاز به تراز مجدد دارند، بنابراین باید بسته‌بندی آن کتابخانه‌ها را به‌روزرسانی کنید ، سپس برنامه خود را مجدداً کامپایل کرده و با دنبال کردن مراحل این بخش، دوباره آزمایش کنید.

برنامه خود را با پشتیبانی از دستگاه های 16 کیلوبایتی بسازید

اگر برنامه شما از کد بومی استفاده می‌کند، مراحلی را که در بخش‌های زیر توضیح داده شده است انجام دهید تا مطمئن شوید که برنامه شما از دستگاه‌های ۱۶ کیلوبایتی پشتیبانی می‌کند:

  1. بسته بندی کتابخانه های مشترک خود را به روز کنید
  2. برنامه خود را با استفاده از تراز ELF 16 کیلوبایتی کامپایل کنید
  3. رفع کد و رفع مشکلات زمان اجرا
  4. SDK ها را برای پشتیبانی 16 کیلوبایت بررسی کنید

بسته بندی کتابخانه های مشترک خود را به روز کنید

توصیه می کنیم AGP نسخه 8.5.1 یا بالاتر را ارتقا دهید و از کتابخانه های مشترک غیرفشرده استفاده کنید.

AGP نسخه 8.5.1 یا بالاتر

دستگاه‌های 16 کیلوبایتی به برنامه‌هایی نیاز دارند که با کتابخانه‌های اشتراک‌گذاری‌شده فشرده‌نشده ارسال شوند تا آن‌ها را روی یک مرز زیپ تراز شده 16 کیلوبایتی تراز کنند. برای انجام این کار، باید به Android Gradle Plugin (AGP) نسخه 8.5.1 یا بالاتر ارتقا دهید. برای جزئیات بیشتر در مورد فرآیند ارتقا، به بخش ارتقاء پلاگین Android Gradle مراجعه کنید.

AGP نسخه 8.5 یا پایین تر

اگر نمی توانید AGP را به نسخه 8.5.1 یا بالاتر ارتقا دهید، گزینه جایگزین استفاده از کتابخانه های اشتراکی فشرده شده است. پیکربندی Gradle خود را به‌روزرسانی کنید تا Gradle کتابخانه‌های مشترک شما را هنگام بسته‌بندی برنامه‌تان فشرده کند تا از مشکلات نصب برنامه با کتابخانه‌های به اشتراک‌گذاشته‌نشده اجتناب شود.

شیار

در فایل build.gradle خود گزینه زیر را اضافه کنید:

android {
  ...
  packagingOptions {
      jniLibs {
        useLegacyPackaging true
      }
  }
}

کاتلین

در فایل build.gradle.kts خود گزینه زیر را اضافه کنید:

android {
  ...
  packagingOptions {
      jniLibs {
        useLegacyPackaging = true
      }
  }
}

برنامه خود را با استفاده از تراز ELF 16 کیلوبایتی کامپایل کنید

دستگاه‌های 16 کیلوبایتی نیاز دارند که بخش‌های ELF کتابخانه‌های مشترک با استفاده از ترازبندی ELF 16 کیلوبایتی به درستی تراز شوند تا برنامه شما اجرا شود.

برای توسعه دهندگان بازی، اگر بازی شما روی موتور بازی Unity اجرا می شود، به راهنمای Unity مراجعه کنید. اگر بازی شما در بالای موتور بازی سازی Unreal اجرا می شود، به راهنمای Unreal مراجعه کنید. برای موتورهای بازی بومی، با این راهنما ادامه دهید.

برای کامپایل برنامه خود با استفاده از تراز 16 کیلوبایتی ELF، بسته به نسخه Android NDK که استفاده می‌کنید، مراحل یکی از بخش‌های زیر را تکمیل کنید.

اندروید NDK r28 و بالاتر

NDK نسخه r28 و بالاتر 16 کیلوبایت را به صورت پیش فرض کامپایل می کند.

اندروید NDK r27

برای پشتیبانی از کامپایل کتابخانه های اشتراکی تراز شده با ۱۶ کیلوبایت با Android NDK نسخه r27 و بالاتر، باید پرچم های ndk-build ، build.gradle ، build.gradle.kts یا پیوند دهنده خود را به صورت زیر به روز کنید:

ndk-build

در 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 و پایین تر

برای پشتیبانی از کامپایل کتابخانه های اشتراکی تراز شده با ۱۶ کیلوبایت با Android NDK نسخه r26 یا پایین تر، باید پیکربندی ndk-build یا cmake خود را به صورت زیر به روز کنید:

ndk-build

Android.mk خود را برای فعال کردن تراز ELF 16 کیلوبایتی به روز کنید:

LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"

CMake

CMakeLists.txt خود را برای فعال کردن تراز ELF 16 کیلوبایتی به روز کنید:

target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,max-page-size=16384")

اندروید NDK r22 و پایین تر

علاوه بر مرحله مشخص شده برای NDK r26 و پایین تر، اگر از NDK r22 یا پایین تر استفاده می کنید، باید common-page-size=16384 را تنظیم کنید. تنظیم common-page-size=16384 به دلیل اشکالات نسخه های قبلی پیوند دهنده های GNU ld و LLVM lld مورد نیاز است. با این حال، ما قویاً توصیه می کنیم که ابزار خود را به نسخه جدیدتر به روز کنید تا به طور کامل از این اشکالات جلوگیری کنید.

برای کامپایل کتابخانه های اشتراکی سازگار با ۱۶ کیلوبایت با Android NDK نسخه r22 یا پایین تر، پیکربندی ndk-build یا cmake خود را به صورت زیر به روز کنید:

ndk-build

Android.mk خود را به روز کنید تا ELF سازگار با ۱۶ کیلوبایت بسازید:

LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
LOCAL_LDFLAGS += "-Wl,-z,common-page-size=16384"

CMake

برای ساختن ELF سازگار با ۱۶ کیلوبایت، CMakeLists.txt خود را به روز کنید:

target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,max-page-size=16384")
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,common-page-size=16384")

رفع کد و رفع مشکلات زمان اجرا

حتی اگر برنامه شما 16 کیلوبایت تراز باشد، اگر مکان‌هایی در کد شما فرض کنند که دستگاه از اندازه صفحه خاصی استفاده می‌کند، برنامه شما می‌تواند با خطا مواجه شود. برای جلوگیری از این، مراحل زیر را انجام دهید:

  1. هر گونه وابستگی کدگذاری سختی که به ثابت PAGE_SIZE اشاره می کند یا نمونه هایی در منطق کد شما که اندازه صفحه دستگاه را 4 کیلوبایت فرض می کند ( 4096 ) را حذف کنید.

    به جای آن getpagesize() یا sysconf(_SC_PAGESIZE) استفاده کنید.

  2. به دنبال موارد استفاده از mmap() و سایر API هایی باشید که به آرگومان های صفحه تراز شده نیاز دارند و در صورت لزوم با جایگزین ها جایگزین کنید.

در برخی موارد، اگر برنامه شما از PAGE_SIZE به‌عنوان یک مقدار مناسب استفاده می‌کند که به اندازه صفحه اصلی مرتبط نیست، این امر باعث نمی‌شود که برنامه شما هنگام استفاده در حالت 16 کیلوبایتی خراب شود. با این حال، اگر این مقدار با mmap بدون MAP_FIXED به هسته ارسال شود، هسته همچنان از یک صفحه کامل استفاده می‌کند که مقداری از حافظه را هدر می‌دهد. به این دلایل، وقتی حالت 16 کیلوبایتی در NDK r27 و بالاتر فعال باشد، PAGE_SIZE تعریف نشده است.

اگر برنامه شما از PAGE_SIZE به این روش استفاده می‌کند و هرگز مستقیماً این مقدار را به هسته منتقل نمی‌کند، به جای استفاده از PAGE_SIZE ، یک متغیر جدید با نام جدید ایجاد کنید تا نشان دهد که برای مقاصد دیگر استفاده می‌شود و صفحه حافظه واقعی را منعکس نمی‌کند.

SDK ها را برای پشتیبانی 16 کیلوبایت بررسی کنید

بسیاری از SDK ها با اندازه صفحه 16 کیلوبایت سازگار هستند، به خصوص اگر خودتان آنها را بسازید یا از پیش ساخته های اخیر دریافت کنید. با این حال، از آنجایی که برخی از پیش ساخته‌های SDK یا نسخه‌های SDK با ۱۶ کیلوبایت سازگار نیستند، باید وب‌سایت هر ارائه‌دهنده SDK را بررسی کنید تا مشخص کنید از کدام نسخه با ۱۶ کیلوبایت استفاده کنید.

برنامه خود را در یک محیط 16 کیلوبایتی تست کنید

بعد از اینکه برنامه خود را با پشتیبانی از دستگاه های 16 کیلوبایتی ساختید، می خواهید برنامه خود را در یک محیط 16 کیلوبایتی آزمایش کنید تا ببینید آیا برنامه شما دچار رگرسیون می شود یا خیر. برای این کار مراحل زیر را دنبال کنید:

  1. Android 15 SDK را تنظیم کنید .

  2. یکی از محیط های تست زیر را تنظیم کنید:

  3. دستگاه تست خود را راه اندازی کنید، سپس دستور زیر را اجرا کنید تا مطمئن شوید که از یک محیط 16 کیلوبایتی استفاده می کند:

    adb shell getconf PAGE_SIZE
    

    دستور باید مقدار 16384 را برگرداند.

  4. دستور zipalign زیر را اجرا کنید تا مطمئن شوید برنامه شما 16 کیلوبایت تراز شده است، جایی که APK_NAME نام فایل APK برنامه شما است:

    zipalign -c -P 16 -v 4 APK_NAME.apk
    
  5. برنامه خود را به طور کامل آزمایش کنید و بر روی مناطقی تمرکز کنید که ممکن است با تغییر نمونه کدهایی که به اندازه های صفحه خاصی اشاره می کنند تحت تأثیر قرار گیرند.

شبیه ساز Android را با یک تصویر سیستم Android 15 مبتنی بر 16 کیلوبایت تنظیم کنید

برای راه اندازی یک محیط 16 کیلوبایتی با استفاده از شبیه ساز اندروید، مراحل زیر را دنبال کنید:

  1. تصاویر سیستم شبیه ساز اندروید 15 مبتنی بر 16 کیلوبایت با اندروید استودیو Jellyfish سازگار است | 2023.3.1 یا بالاتر. با این حال، برای بهترین تجربه هنگام کار با دستگاه های 16 کیلوبایتی، از Android Studio Ladybug | استفاده کنید 2024.2.1 یا بالاتر.

    ما همیشه روی ویژگی‌های جدید کار می‌کنیم، بنابراین نسخه‌های جدیدتر یا آخرین نسخه پیش‌نمایش Android Studio را به محض دردسترس شدن، دانلود کنید.

    به یاد داشته باشید که می‌توانید نسخه موجود Android Studio خود را نصب کنید، زیرا می‌توانید چندین نسخه را در کنار هم نصب کنید .

  2. در Android Studio، روی Tools > SDK Manager کلیک کنید.

  3. در برگه پلتفرم‌های SDK ، Show Package Details را علامت بزنید، سپس بخش Android VanillaIceCream یا بالاتر را گسترش دهید و بسته به دستگاه‌های مجازی که می‌خواهید ایجاد کنید، یکی یا هر دو تصویر سیستم شبیه‌ساز زیر را انتخاب کنید:

    • Google APIs Experimental 16 KB Size Page ARM 64 v8a System Image
    • Google APIs Experimental 16 KB Size Page Intel x86_64 Atom System Image

    دانلود تصاویر سیستم شبیه ساز 16 کیلوبایتی با استفاده از SDK Manager در اندروید     استودیو

  4. روی Apply > OK کلیک کنید تا هر کدام از تصاویر سیستمی را که انتخاب کرده اید دانلود کنید.

  5. مراحل راه اندازی یک دستگاه مجازی برای Android 15 را دنبال کنید و هنگامی که از شما خواسته شد یک تصویر سیستم را انتخاب کنید، تصویر سیستمی 16 کیلوبایتی را که دانلود کرده اید انتخاب کنید. اگر به طور خودکار توصیه نمی شود، می توانید تصویر سیستم 16 کیلوبایتی را در برگه سایر تصاویر پیدا کنید.

    تصویر شبیه ساز 16 کیلوبایتی را در سایر تصاویر پیدا کنید برگه

مراحل اضافی برای برخی از نسخه های شبیه ساز و تصاویر سیستم

برای شبیه ساز اندروید نسخه های 35.1.5 تا 35.1.20 و قبل از ویرایش 4 از تصاویر سیستم Android 15.0 16 KB با حجم صفحه ارائه شده در SDK Manager، برای شبیه سازی یک محیط 16 کیلوبایتی در سیستم های x86_64، باید مراحل زیر را نیز انجام دهید. این مراحل بعد از نسخه 35.1.21 و با ویرایش 4 از تصاویر سیستم Android 15.0 16 KB با اندازه صفحه یا نسخه های جدیدتر مورد نیاز نیست.

  1. در Device manager، روی 3 نقطه کنار تصویر 16 کیلوبایتی کلیک کنید، سپس روی Show on Disk کلیک کنید.
  2. در این پوشه فایل config.ini پیدا کنید.
  3. خط زیر را به فایل config.ini اضافه کنید و تغییرات خود را ذخیره کنید:

    kernel.parameters = androidboot.page_shift=14
    
  4. برای تأیید تغییرات خود، دستور زیر را اجرا کنید که باید 16384 برگرداند:

    adb shell getconf PAGE_SIZE
    

شبیه ساز را راه اندازی کنید

پس از اتمام راه‌اندازی شبیه‌ساز Android و دستگاه‌های مجازی، شبیه‌ساز را از منوی دستگاه مقصد یا از خط فرمان اجرا کنید.

使用开发者选项在设备上启用 16 KB 模式

切换以 16KB 页面大小启动设备开发者选项,以便在 16 KB 模式下启动设备。

从 Android 15 QPR1 开始,您可以使用某些设备上提供的开发者选项,以 16 KB 模式启动设备并执行设备端测试。在使用开发者选项之前,请依次前往“设置”->“系统”->“软件更新”,然后应用所有可用的更新。

此开发者选项适用于以下设备:

  • Pixel 8 和 Pixel 8 Pro(搭载 Android 15 QPR1 或更高版本)

    警告:由于 Android 15 QPR2 Beta 版 3 存在已知问题,在安装 Android 15 QPR2 Beta 版 3 并以 16 KB 模式启动设备后,Pixel 8 设备上的触摸屏无法正常使用。此问题不会影响 Pixel 8 Pro 设备。

  • Pixel 8a(搭载 Android 15 QPR1 或更高版本)

    警告:由于 Android 15 QPR2 Beta 版 3 存在已知问题,在安装 Android 15 QPR2 Beta 版 3 并以 16 KB 模式启动设备后,Pixel 8a 设备上的触摸屏无法正常使用。

  • Pixel 9、Pixel 9 Pro 和 Pixel 9 Pro XL(搭载 Android 15 QPR2 Beta 2 或更高版本)

الزامات سازگاری Google Play

از آنجایی که سازندگان دستگاه‌ها را برای بهینه‌سازی عملکرد دستگاه‌ها را با رم بیشتری تجهیز می‌کنند، بسیاری از آنها اندازه‌های صفحه بزرگ‌تری مانند 16 کیلوبایت را انتخاب می‌کنند. برای آماده‌سازی راه‌اندازی این دستگاه‌های آینده، Google Play یک الزام سازگاری برای همه برنامه‌های جدید و به‌روزرسانی‌های برنامه‌های موجود و هدف قرار دادن دستگاه‌های Android 15+ برای پشتیبانی از اندازه صفحه 16 کیلوبایت از اول نوامبر 2025 معرفی شده است.

برای مطالعه بیشتر در مورد این الزام سازگاری، این پست وبلاگ را ببینید.