Android 16 KB Alignment

开发 2025-12-05

自 Android 15 及更高版本起,系统开始支持 16KB 内存页,特别是搭载 ARM 架构的手机,出厂时便默认启用该功能。

以下仅能让自己项目的Jni支持,其他Jni需相关开发进行支持。

1、环境:

  1. NDK:android-ndk-r27-windows.zip -> androidsdk/ndk/27.0.12077973
  2. Cmake:3.18.1 -> androidstudio >tool >SDK Manager >SDK Tools(勾选右下Show Package Details)

2、更新项目(均基于androidstudio jni module):

  1. CMakeLists.txt

    cmake_minimum_required(VERSION 3.18.1) # 修改
    ...
    target_link_options(jnilib PRIVATE "-Wl,-z,max-page-size=16384") # 添加
  2. build.gradle

    android {
     ...
     defaultConfig {
         ndkVersion '27.0.12077973' // 修改
     }
     externalNativeBuild {
         cmake {
             version "3.18.1" // 指定版本
         }
     }
     ...
    }
  3. local.properties

    ndk.dir=E\:\\Android\\Sdk\\ndk\\27.0.12077973 # 修改
  4. 编译:Gradle >jnilib >Tasks >build >assemble
  5. 检测: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 # 成功

相关资料:https://mp.weixin.qq.com/s/jKZDeGj5DTN1X17vMTGhrA


本文由 scxingm 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论