EN
/video/64362846.html

Android 15 自杀式“升级”:适应16K内存分页

2025-06-24 11:31:51 来源: 新华社
字号:默认 超大 | 打印 |

Android 15 将强制16K Page Size(#xff09内存页࿰,据估计,谷歌中的印度人拍了拍脑门。

一、。您的应用程序是否使用动态库so?

将你的apk拖到Android Studio,后者将按压apk打开,找到压缩包中的lib文件夹,看看里面的各子文件是否有so;不能直接从工程文件夹中找到so来判断。,因为有些so是你打包后形成的。

二、。处理流程。

if( 您的应用程序没有使用动态库so) {     祝贺您:不需要适应这个“升级”;}else {     if(第三方SO动态库) {         if(第三方so是大厂) {             等他们更新,您可以更新相关库;            // 比如昨天在weibo, sdk群问󿀌他们说在本周内进行更新,并且不会再使用so。        } else { // 第三方so是个人的            // 你运气不好:因为他们做的共享库都是玩票的性质,大多数人已经很多年没有更新了,为了适应16k内存分页,他们不太可能复出更新,你也很难联系他们            您只能删除相关的第三方so功能或找到替代品的纯aar/jar(谈论xff09有多容易;;        }    } else { // 自己的so        本文重点()());    }}。

三、。三、本文重点()。

// 如何适应自己的so?

1、搭建16K Page Size模拟器,以便测试。

网上有很多信息,主要升级为Android 最新版本的Studiokoala,然后SDK 下载Androididatforms VanillaIceCream Preview(即 Android 15 #xff09预览版;,其子项包括勾选 16K Page Size System字样 Image(X86_64和ARM64),下载。

然后创建相应的Systemem Image模拟器,跑你的app,使用so的相关界面很可能会崩溃(在我的应用程序中使用的所有SO界面都崩溃了#xff09;。

然后创建相应的Systemem Image模拟器,跑你的app,使用so的相关界面很可能会崩溃(在我的应用程序中使用的所有SO界面都崩溃了#xff09;。

2、更新NDK编译配置。

将NDK版本升级到27󿀌然后是Application.mk里加一行:

APP_SUPPORT_FLEXIBLE_PAGE_SIZES := true。

然而,在我的项目完成后,导致编译so时报错,换回旧版22;上述版本22肯定不认,因此,理论上可以删除,但是我保留了:以后有时间解决27编译错误󿀌这句话很有用。

由于已恢复到22󿀌那怎样才能把so编译成16K呢? Page Size?

此时,将编辑Androidid.mk,加一行:

LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"

我自己有很多so,所以有很多Android.不同文件夹中的mk文件,别忘了每一个Android.所有MK文件都需要添加此行。

3、重新编译so。3、重新编译so。编译的前提是:AGP上升到8.3Ʊ。升级后,重新编译so󿀌16K运行到第一步 模拟器,发现使用这些so的相关界面是正常的。

【我要纠错】责任编辑:新华社