项目AGP升级至7.0+后发现打出来release包的体积比之前增加近一倍,经过查询官方文档得知在AGP3.6.0时的行为变更上:默认情况下,原生库以未压缩的形式打包。
在构建应用时,插件现在默认会将 extractNativeLibs
设置为 "false"
也就是说,您的原生库将保持页面对齐状态并以未压缩的形式打包。虽然这样会增加上传大小,但您的用户会从以下优势中受益:
- 减小应用安装大小,因为平台可以直接从已安装的 APK 访问原生库,而无需创建库的副本。
- 减小下载文件大小,因为在 APK 或
Android App Bundle
中添加未压缩的原生库通常可提高 Play 商店的压缩率。
如果您希望 Android Gradle
插件改为打包压缩后的原生库,请在应用的清单中添加以下代码:
<application
android:extractNativeLibs="true"
... >
</application>
但是从 AGP 4.2.0 开始,extractNativeLibs
清单属性已被 DSL 选项 useLegacyPackaging
取代。 您应该使用应用的 build.gradle
文件中的 useLegacyPackaging
(而非清单文件中的 extractNativeLibs
)来配置原生库压缩行为: