android 16kb适配步骤
Android 16KB 页面大小(16KB page size)适配,主要是针对 Android 15(API 35)及以上版本 引入的新特性。Google 宣布未来设备可能使用 16KB 的内存页大小(page size),而传统 Android 设备使用的是 4KB。如果你的应用使用了 native 代码(如 JNI、NDK、so 库),就必须适配,否则可能在 16KB 设备上崩溃。
你受影响的前提是:
在 gradle.properties 中添加:
android.useNewPdk=true
确保所有 .so 文件都使用 16KB 对齐 编译。
ndk-build在 Android.mk 中添加:
LOCAL_LDFLAGS += -Wl,-z,max-page-size=16384
在 CMakeLists.txt 中添加:
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,max-page-size=16384")
-Wl,-z,max-page-size=16384Google 提供了一个命令行工具来检查 .so 是否 16KB 对齐:
python3 check_elf_alignment.py yourlib.so
工具地址(官方):
https://android.googlesource.com/platform/bionic/+/master/tools/check_elf_alignment.py
SIGSEGV)dlopen 失败UnsatisfiedLinkError升级 NDK ≥ r27,重新编译所有 so 库,加上
-Wl,-z,max-page-size=16384,并测试在 16KB 设备上运行。
如你有具体的 so 库或构建系统(如 Flutter、Unity、CMake),我可以给你更具体的适配命令。