Android 16k jni修改

参考官网

支持 16 KB 的页面大小 | Compatibility | Android Developers

在11月1号,谷歌就会全面检测so库是否16k对齐了,记录一下我的修改记录
现象

如上图所示,我的so库有三个是没有对齐的,根据后面的修改内容一个一个修复

1.原因

原因就不多说了,Android有公告,有说了为什么要修改,这个就略过

2.检查是否存在问题

其实很好检查,在AndroidStudio升级到一定版本后,每次编译运行,就会有提示如图

我的AndroidStudio版本如下

具体是从哪个版本开始支持检测的,这个我没有注意,反正迟早要更新的事

3.开始解决
1.准备工作
a.升级AGP

官网介绍,建议升级到AGP8.5.1以上的版本

Groovy 复制代码
plugins {
    id 'com.android.application' version '8.11.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.8.10' apply false
    id 'com.android.library' version '8.11.0' apply false
    id 'com.android.tools.build-gradle' version '8.11.0' apply false
}

如果你的AndroidStudio版本太低,需要升级AndroidStudio,因为一些AndroidStudio不支持高版本的AGP,像我之前的工具就最高支持到AGP8.1,所以AndroidStudio也需要更新

b.升级NDK
Groovy 复制代码
 externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.22.1'
        }
    }

..
ndkVersion '28.2.13676358'

我的ndk升级到R28,没有升级到最新的版本,够用就行了,至于为什么升级到R28,官网有介绍,如下:

以上都是从官网截图的,其实升级到NDK R28以上就是为了省事,不用做其他配置,升级后,你编译生成新的so库,是默认支持16kb对齐的,如果版本较低需要在cmakeList中添加一些配置,我觉得既然升级一个ndk版本就能解决,那干脆一步到位。

2.编译so库

我升级了NDK,AGP后,直接编译so库,没有修改cmakeList里面的内容

编译生成完毕后,替换到我们的项目里面,运行起来

4.结语

其实刚开始说要大量更新so动态库的时候也很担心,好在官方后面给了很好的解决方案,只需要升级NDK,再编译一次就可以,说明官方还是很考虑我们这些基层工作者的,点赞

相关推荐
fatiaozhang95279 分钟前
中兴B860AV5.2-U_原机安卓4.4.2系统专用_晶晨S905L3SB处理器_线刷固件包
android·电视盒子·刷机固件·机顶盒刷机·中兴b860av5.2-u
儿歌八万首22 分钟前
Android 自定义 View 实战:打造一个跟随滑动的丝滑指示器
android·kotlin
我有与与症23 分钟前
Kuikly 实战:手把手撸一个跨平台 AI 聊天助手 (ChatDemo)
android
恋猫de小郭26 分钟前
Flutter UI 设计库解耦重构进度,官方解答未来如何适配
android·前端·flutter
apihz1 小时前
全球IP归属地查询免费API详细指南
android·服务器·网络·网络协议·tcp/ip
hgz07102 小时前
Linux环境下MySQL 5.7安装与配置完全指南
android·adb
Just_Paranoid2 小时前
【Android UI】Android 添加圆角背景和点击效果
android·ui·shape·button·textview·ripple
梁同学与Android2 小时前
Android ---【经验篇】阿里云 CentOS 服务器环境搭建 + SpringBoot项目部署(二)
android·spring boot·后端
风往哪边走2 小时前
自定义简易日历
android