ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Android15适配16kb完整版

2026/8/4 3:44:35 拓冰建站 浏览量
Android15适配16kb完整版 Android15适配16kb完整版前言之前适配过Android15中MMKV的16kb但是项目的其他库没有给出来详细方案这里给出一个完整项目的视频主要是第三方库和sdk的版本升级等.1.Google Play 16 KB 兼容性要求:自 2025 年 11 月 1 日起所有提交到 Google Play 且以 Android 15 或更高版本设备为目标平台的新应用和现有应用更新都必须在 64 位设备上支持 16 KB 的页面大小。详细了解 →从历史上看Android 仅支持 4 KB 内存页面大小这优化了系统内存性能以适应 Android 设备通常拥有的平均总内存量。从 Android 15 开始AOSP 支持配置为使用 16 KB 页面大小的设备16 KB 设备。如果您的应用直接或通过 SDK 间接使用任何 NDK 库则需要重新构建应用才能在这些 16 KB 设备上运行。随着设备制造商不断制造出具有更大物理内存 (RAM) 的设备许多此类设备将采用 16 KB最终甚至更大的页面大小来优化设备性能。添加对 16 KB 页面大小设备的支持可让您的应用在这些设备上运行并帮助您的应用受益于相关的性能改进。如果不重新编译应用将无法在未来 Android 版本的 16 KB 设备上运行。为帮助您为应用添加支持我们提供了相关指南介绍了如何检查应用是否受到影响、如何重新构建应用如果适用以及如何使用模拟器包括 Android 模拟器的 Android 15 系统映像在 16 KB 环境中测试应用。官网地址https://developer.android.com/guide/practices/page-sizes?utm_sourceandroid-studio-apputm_mediumapphlzh-cn#compile-16-kb-alignment2.概念什么是16K页面对齐告别4K时代在计算机操作系统中内存以固定大小的“页面”为单位进行管理。长久以来安卓系统一直沿用4KB作为标准的页面大小。所谓“页面对齐”就是确保内存中的数据块尤其是应用的可执行文件和库从能被页面大小整除的地址开始存放。随着硬件的飞速发展现代智能手机配备了越来越大的内存RAM4KB的页面大小在管理庞大内存时逐渐显得力不从心导致了性能瓶颈。为了突破这一限制安卓系统从安卓15开始引入了对16KB页面的支持并将在安卓16及更高版本中将其作为一项强制性的技术要求特别是对于搭载大内存的设备。这意味着应用和系统进程将以16KB为单位进行内存的分配和管理。3.16kb优势优势和性能提升配置为使用 16 KB 页面大小的设备平均会使用略多一些的内存但系统和应用的性能也会得到各种提升缩短了系统内存压力时的应用启动时间平均降低了 3.16%对于我们测试的某些应用而言改进幅度更大最高可达 30%应用启动期间的功耗降低平均降低了 4.56%相机启动更快热启动速度平均提高了 4.48%冷启动速度平均提高了 6.60%缩短了系统启动时间平均缩短了 8%约 950 毫秒这些改进基于我们的初始测试实际设备上的结果可能会有所不同。随着测试的继续进行我们将进一步分析应用的潜在收益。4.16kb打包方式变更AGP 版本 8.5 或更低版本注意 在 AGP 版本 8.3 至 8.5 中应用默认按 16 KB 对齐。不过bundletool默认情况下不会对 APK 进行 zipalign。因此该应用可能看起来可以正常运行但从 Play 中的 bundle 构建时它将无法安装。如果您无法将 AGP 升级到 8.5.1 版或更高版本则可以改用压缩共享库。更新 Gradle 配置以便 Gradle 在打包应用时压缩共享库从而避免因共享库未对齐而导致的应用安装问题。GroovyKotlin在build.gradle文件中添加以下选项android{...packagingOptions{jniLibs{useLegacyPackagingtrue}}}AGP 版本 8.0 或更低版本如果您使用的 AGP 版本不高于 8.0还需要在gradle.properties文件中为 App Bundle 停用未压缩的原生库选项android.bundle.enableUncompressedNativeLibsfalse5.mmkv适配根据官方文档mmkv适配16kb需要回退版本到1.3.14.implementation com.tencent:mmkv:1.3.14详细官方参考文档https://github.com/Tencent/MMKV/issues/1602https://github.com/Tencent/mmkv/releases/tag/v1.3.14修改前so:修改后so6.ZlwAudioRecorder录音适配implementation com.github.zhaolewei:ZlwAudioRecorder:v1.16参考文档https://github.com/zhaolewei/ZlwAudioRecorder/commit/075adbb4aac3644c99aecebd9bee92ab0759748b打包验证7.easyble蓝牙库适配参考文档https://github.com/wandersnail/easyble-x/releases// 低功耗蓝牙库implementation cn.wandersnail:easyble-x:1.5.6 implementation cn.wandersnail:commons-android:1.5.08.EpMedia适配https://github.com/yangjie10930/EpMedia/issues/287https://github.com/SoarY/EpMedia-16kb9.探鸽适配参考文档https://tange-ai.feishu.cn/wiki/wikcnxrR004MfDnSN0oAoWayLMh//探鸽依赖库 implementation(com.tange.ai:shell_core:2026.1.2) { exclude group: org.json, module: json } implementation com.tange.ai:core_ap_scan_oversea:2022.1208.1 implementation com.tange.ai:base_qrcode_mainland:2022.1031.210.tuya适配参考文档https://developer.tuya.com/cn/docs/app-development/changelog?idKa6o3br3pb4foimplementation(com.thingclips.smart:sweeper:6.7.1){exclude group:org.eclipse.paho}implementation com.thingclips.smart:thingsmart-ipcsdk:6.7.3 apienforcedPlatform(com.thingclips.smart:thingsmart-BizBundlesBom:6.7.12)11.极光推送适配参考文档https://docs.jiguang.cn/jpush/jpush_changelog/updates_Android修改后版本// 推送 def jpushVersion 6.2.0 Lefant_yingyongbaoImplementation cn.jiguang.sdk:jpush:$jpushVersion Lefant_google_selfImplementation cn.jiguang.sdk:jpush-google:$jpushVersion Lefant_googleImplementation cn.jiguang.sdk:jpush-google:$jpushVersion OKP_yingyongbaoImplementation cn.jiguang.sdk:jpush:$jpushVersion OKP_google_selfImplementation cn.jiguang.sdk:jpush-google:$jpushVersion OKP_googleImplementation cn.jiguang.sdk:jpush-google:$jpushVersion // 接入华为厂商 implementation com.huawei.hms:push:6.13.0.301 implementation cn.jiguang.sdk.plugin:huawei:6.2.0 // 极光厂商插件版本与接入 JPush 版本保持一致下同 implementation cn.jiguang.sdk.plugin:fcm:$jpushVersion // 接入 OPPO 厂商 implementation cn.jiguang.sdk.plugin:oppo:6.2.0 //以下为 OPPO 3.1.0 aar需要依赖 implementation commons-codec:commons-codec:1.22.0 implementation androidx.annotation:annotation:1.10.0 // 接入小米厂商 implementation cn.jiguang.sdk.plugin:xiaomi:$jpushVersion // 荣耀厂商 Lefant_yingyongbaoImplementation cn.jiguang.sdk.plugin:honor:10.0.13.305 OKP_yingyongbaoImplementation cn.jiguang.sdk.plugin:honor:10.0.13.305 implementation androidx.activity:activity:1.13.0 implementation androidx.core:core:1.19.0 implementation com.google.android.gms:play-services-auth:21.6.0 implementation com.google.android.gms:play-services-base:18.10.0 implementation com.google.android.gms:play-services-analytics:18.1.1 // 推送12.pl.droidsonroids.gif由于pl.droidsonroids.gif:android-gif-drawable:1.2.29找不到依赖库使用换成1.2.32版本如果实在不行去掉此库使用glide加载gif动画implementation ‘pl.droidsonroids.gif:android-gif-drawable:1.2.32’https://github.com/koral–/android-gif-drawable/issues/859?issuekoral–%7Candroid-gif-drawable%7C85713.android-pdf-viewer适配参考文档https://github.com/barteksc/AndroidPdfViewerV2/issues/35implementation io.github.oothp:android-pdf-viewer:3.2.0-beta06需要修改一个方法适配前适配后14.buyly适配implementation com.tencent.bugly:crashreport:4.1.9.3升级到专业版此问题解决如果公司有成本考虑不升建议直接去掉此sdk即可15.阿里云iotsdk适配dependencies { api com.aliyun.iot.aep.sdk:apiclient:0.1.9 api com.aliyun.iot.aep.sdk:sdk-framework:1.1.8 api com.aliyun.iot.aep.sdk:iot-credential:0.0.4.1 api com.aliyun.alink.linksdk:api-client-biz:1.0.3 api com.aliyun.iot.sdk:account-oa-ui:1.0.0.6 api com.alibaba.sdk.android.openaccount:openaccount-ui-default:3.7.17 api com.aliyun.alink.linksdk:connectsdk:1.0.3.2 api com.aliyun.iot.aep.sdk:jsbridge-external:0.1.8.4 api com.aliyun.iot.aep.component:router-external:0.1.20 api(com.alibaba.ailabs.iot:aisbase:1.0.0.131-aisbase) { exclude group: com.taobao.android, module: mtopsdk_allinone } //不使用breeze SDK功能baseutils?要集成上如集成了breeze-bizbaseutils可不额外集成 api com.alibaba.ailabs.tg:baseutils:1.0.2.10 //长连接SDK api com.aliyun.iot.aep.sdk:connectchannel:0.1.5.1 api com.aliyun.alink.linksdk:public-channel-mobile:1.5.7 //配网、设备模型SDK api com.aliyun.alink.linksdk:public-tmp:2.1.7 api(com.aliyun.alink.linksdk:devicecenter:1.10.6.8) api(com.aliyun.alink.linksdk:devicecenter-provision-core:1.10.6.8) api(com.aliyun.alink.linksdk:devicecenter-provision-reserve:1.10.6.8) api(com.alibaba.ailabs.iot:meshsdk:1.0.9.6) { exclude(group: com.alibaba.ailabs.iot, module: multiendinonebridge) } api(com.alibaba.ailabs.iot:gattlibrary:1.0.0.39-gatt) api(com.alibaba.ailabs.iot:bluetoothleSDK:1.0.0.48) api com.alibaba.ailabs.iot:multiendinonebridge:1.0.0.27 api com.aliyun.ams:alicloud-android-utdid:2.6.0 //https://help.aliyun.com/document_detail/140717.html api(com.aliyun.iotx:linkvisual-media:2.7.4-ilop) }16.16kb适配第三方工具https://www.npmjs.com/package/verify-16k-page-alignhttps://github.com/fzer0x/SoPageAligner17.适配后的截图最后还剩8个需要联系第三方sdk这里根据你自己的项目进行适配,因为我们最终第三方sdk给出了新版本所以适配基本上解决了其实核心就是更换升级第三方sdk.18.完整的适配后的版本// offline logimplementation com.thingclips.smart:thingsmart-logsdk:5.0.1 implementation com.thingclips.smart:thing-log-sdk:6.7.0//语言快绑引入的依赖库apienforcedPlatform(com.thingclips.smart:thingsmart-BizBundlesBom:7.8.0)api com.thingclips.smart:thingsmart-bizbundle-amazon_google_bind api com.thingclips.smart:thingsmart-bizbundle-mall implementation androidx.sqlite:sqlite:2.2.0 implementation net.zetetic:sqlcipher-android:4.17.0aar implementation androidx.core:core-ktx:1.19.0 implementation androidx.lifecycle:lifecycle-viewmodel-ktx:2.11.0 implementation org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0 def jpushVersion6.2.0 Lefant_yingyongbaoImplementationcn.jiguang.sdk:jpush:$jpushVersionLefant_google_selfImplementationcn.jiguang.sdk:jpush-google:$jpushVersionLefant_googleImplementationcn.jiguang.sdk:jpush-google:$jpushVersionOKP_yingyongbaoImplementationcn.jiguang.sdk:jpush:$jpushVersionOKP_google_selfImplementationcn.jiguang.sdk:jpush-google:$jpushVersionOKP_googleImplementationcn.jiguang.sdk:jpush-google:$jpushVersion// 接入华为厂商implementation com.huawei.hms:push:6.13.0.301 implementation cn.jiguang.sdk.plugin:huawei:6.2.0// 极光厂商插件版本与接入 JPush 版本保持一致下同implementationcn.jiguang.sdk.plugin:fcm:$jpushVersion// 接入 OPPO 厂商implementationcn.jiguang.sdk.plugin:oppo:6.2.0//以下为 OPPO 3.1.0 aar需要依赖implementation commons-codec:commons-codec:1.22.0 implementation androidx.annotation:annotation:1.10.0// 接入小米厂商implementationcn.jiguang.sdk.plugin:xiaomi:$jpushVersion// 荣耀厂商Lefant_yingyongbaoImplementationcn.jiguang.sdk.plugin:honor:10.0.13.305OKP_yingyongbaoImplementationcn.jiguang.sdk.plugin:honor:10.0.13.305implementation androidx.activity:activity:1.13.0 implementation androidx.core:core:1.19.0 implementation com.google.android.gms:play-services-auth:21.6.0 implementation com.google.android.gms:play-services-base:18.10.0 implementation com.google.android.gms:play-services-analytics:18.1.118.1 如果是老版本的kotlin和core库会有一些冲突统一版本configurations.all{resolutionStrategy{// 强制使用 OkHttp 4.10.0force com.squareup.okhttp3:okhttp:4.10.0// 强制关联的 Okio 版本force com.squareup.okio:okio:2.10.0 force androidx.core:core:1.15.0 forceandroidx.core:core-ktx:1.13.0forceandroidx.activity:activity:1.9.0forceandroidx.fragment:fragment:1.6.1}}18.2 过滤一些so冲突配置packagingOptions{pickFirst lib/*/liblog.so pickFirst lib/*/libgnustl_shared.so pickFirst lib/*/libc_shared.so pickFirst lib/*/libyuv.so pickFirst lib/*/libopenh264.so pickFirst lib/*/libv8wrapper.so pickFirst lib/*/libv8android.so pickFirst lib/*/libsqlcipher.so pickFirst lib/*/libGifLib.so exclude META-INF/INDEX.LIST exclude META-INF/*.SF exclude META-INF/*.DSA exclude META-INF/*.RSA }