Android 16k页面大小适配

页面大小是 OS 管理内存的精细程度。如今,大多数 CPU 都支持 4 KB 页面大小,因此 Android OS 和应用一直以来都是针对 4 KB 页面大小进行构建和优化的。ARM CPU 支持更大的 16 KB 页面大小,从 Android 15 开始,AOSP 也支持构建具有 16 KB 页面大小的 Android。此选项会使用额外的内存,但可以提高系统性能。从 Android 15 开始,此选项默认处于停用状态,但作为开发者模式或开发者选项提供,以便 OEM 和应用开发者为日后在所有设备上切换到 16 KB 模式做好准备。

Android 15 及更高版本支持使用 16 KB ELF 对齐方式构建 Android,该对齐方式自 android14-6.1 开始适用于 4 KB 和 16 KB 内核。与 16 KB 内核搭配使用时,此配置会使用额外的内存,但可以提高系统性能。

一、如何查看apk是否有适配16k页面大小

点击 build->Analyze APK会显示apk是否支持,或者直接在as上双击apk

二、16k页面优势

Google 测试显示,16 KB 页面可以带来:

  • 应用启动速度提升:3% 到 30% 不等
  • 电池续航改善:平均提升 4.5%
  • 相机启动加速:4.5% 到 6.6% 的提升
  • 系统启动加速:约 8% 的提升
三、适配16k页面大小

1.升级NDK版本到r28或者更高

java 复制代码
ndkVersion "29.0.13846066"

2.cmake文件添加

cpp 复制代码
#解决Android 16KB页面设备的兼容性问题, 确保生成的.so文件符合低内存设备的对齐要求
#16384转16进制就是0x4000
set(PAGE_SIZE_HEX 0x4000) # 16KB 设备用 0x4000,64KB 设备用 0x10000
add_compile_options(
        -Wl,--fix-cortex-a53-843419
        -Wl,-z,max-page-size=${PAGE_SIZE_HEX} # 最大页对齐
        -Wl,-z,common-page-size=${PAGE_SIZE_HEX} # 通用页对齐
)
# 在现有配置中添加链接器参数
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,max-page-size=${PAGE_SIZE_HEX} -Wl,-z,common-page-size=${PAGE_SIZE_HEX}")
四、模拟器运行

1.可以使用Android Studio Ladybug | 2024.2.1或更高版本的Android Studio来创建模拟器。

2.在 Android Studio 中,依次点击 Tools > SDK Manager

3.在SDK Platforms 标签页中,勾选Show Package Details ,然后展开Android VanillaIceCream或更高版本部分,并根据要创建的虚拟设备选择以下一个或两个模拟器系统映像:

Google APIs Experimental 16KB Page Size ARM 64 v8a系统映像

Google APIs实验性16KB 页面大小Intel x86_64 Atom系统映像

1.点击应用 > 确定,下载所选的系统映像。

2.按照步骤为Android 15设置虚拟设备,并在系统提示选择系统映像时,选择下载好的16KB系统映像。

启动模拟器

完成 Android 模拟器和虚拟设备的设置后,从目标设备菜单或从命令行动模拟器,之后再在开发者模式中启动16KB模式即可。

运行结果

程序进行16KB页面对齐时,在开启16KB模式的环境上正常运行;

程序没有进行16KB页面对齐时,在开启16KB模式的环境上运行时会提示16KB校验失败,此时程序就可能会无法运行,校验失败的截图如下

相关推荐
Digitally1 天前
从安卓手机切换到iPhone:好处、缺点及4种方法
android·智能手机·iphone
2501_915921431 天前
iOS App 混淆与热更新兼容实战 混淆后如何安全可靠地推送热修复(Hotfix)与灰度回滚
android·ios·小程序·https·uni-app·iphone·webview
木易 士心1 天前
Jetpack Room 从入门到精通
android·数据库
2501_915918411 天前
iOS 26 软件兼容性大检查,哪些 App 出问题、API 变动要注意、旧功能不支持兼容性测试全流程
android·ios·小程序·https·uni-app·iphone·webview
2501_915909061 天前
iOS 26 系统流畅度深度评测 Liquid Glass 动画滑动卡顿、响应延迟、机型差异与 uni-app 优化策略
android·ios·小程序·uni-app·cocoa·iphone·webview
2501_915909061 天前
App 代上架全流程解析 iOS 应用代上架服务、苹果应用发布步骤、ipa 文件上传与 App Store 审核经验
android·ios·小程序·https·uni-app·iphone·webview
2501_916013741 天前
iOS 开发指南全解析 从入门到应用上架、Xcode 使用教程、ipa 打包上传与 App Store 审核实战经验
android·macos·ios·小程序·uni-app·iphone·xcode
咖啡の猫1 天前
Android开发-Application
android
00后程序员张1 天前
iOS 混淆与反调试反 Hook 实战,运行时防护、注入检测与安全加固流程
android·安全·ios·小程序·uni-app·iphone·webview
2501_915918411 天前
iOS 上架流程详细指南 苹果应用发布步骤、ipa 文件上传 打包上架实战经验
android·ios·小程序·https·uni-app·iphone·webview