Flutter适配 Android ELF(16KB)对齐指南

246 阅读2分钟

概述

根据GooglePlay商店政策, 从 2025 年 11 月 1 日起,所有提交到 Google Play 且面向 Android 15 及以上设备的新应用和现有应用的更新都必须支持 16 KB 的页面大小。

本文介绍Flutter项目(安卓模块)快速检查并适配16KB对齐的方法.

通过模拟器检查否达到16KB兼容

  1. 在AndroidStudio中打开Device Manager, 创建新的虚拟机 image.png

  2. 选择任意手机后, 进入下一步选择镜像 image.png

3.选择任意 API>35 的镜像, 然后在Service勾选Show All, 在列表中选择任意包含16 KB Page Size的镜像, 创建新虚拟机

image.png

  1. 运行App, 查看是否有系统提示‘不兼容16KB’

image.png

使用analyze-so查找需要优化的依赖

  1. app:build.gradle中添加检查插件(检查完成后可以直接移除, 无需进入生产环境)

当前最新版本为 0.0.7

plugins {
    id("io.github.ravenliao.analyze-so") version "0.0.7"
}

image.png

  1. 运行命令 在android路径中运行
./gradlew build && ./gradlew analyzeSo

image.png 3. 用浏览器打开控制台输出的分析文件(analyze-so-report.html)

只需要检查 ARM64-V8A与X86_64不支持⚠ 4KB的包即可 image.png

支持16KB对齐

  • 直接在pub.dev中查找该包的版本发布信息, 用新版本替换旧版本. 或考虑用其他相同功能包替换.
  • 对于没有替代, 但是有源代码的包, 可以参考教程手动编译项目.
  • 对于没有源代码的包, 请考虑替换成其他包.

备注信息

只需要arm64-v8a支持16KB即可, x86_64仅用于调试, 在上传谷歌商店之前可以将其移除. 更新信息参考

最终检查: 通过Play商店检查是否支持16KB对齐

将App上传的Play商店 image.png

参考

support.google.com/googleplay/…