自 Android 15 及更高版本起,系统开始支持 16KB 内存页,特别是搭载 ARM 架构的手机,出厂时便默认启用该功能。
以下仅能让自己项目的Jni支持,其他Jni需相关开发进行支持。
1、环境:
- NDK:android-ndk-r27-windows.zip -> androidsdk/ndk/27.0.12077973
- Cmake:3.18.1 -> androidstudio >tool >SDK Manager >SDK Tools(勾选右下Show Package Details)
2、更新项目(均基于androidstudio jni module):
CMakeLists.txt
cmake_minimum_required(VERSION 3.18.1) # 修改 ... target_link_options(jnilib PRIVATE "-Wl,-z,max-page-size=16384") # 添加build.gradle
android { ... defaultConfig { ndkVersion '27.0.12077973' // 修改 } externalNativeBuild { cmake { version "3.18.1" // 指定版本 } } ... }local.properties
ndk.dir=E\:\\Android\\Sdk\\ndk\\27.0.12077973 # 修改- 编译:Gradle >jnilib >Tasks >build >assemble
检测:androidstudio >Build >Analyze APK... >选择项目apk,导航到优化的so项
4 KB zip alignment, but 16 KB is required # 未成功 4 KB LOAD section alignment, but 16 KB is required # 未成功 4 KB zip and 4 KB LOAD section, but 16 KB is required for both # 未成功 16 KB # 成功

还不快抢沙发