shrinkResources 的使用

本文深入探讨了通过开启混淆(minifyEnabled)和资源缩减(shrinkResources)来减小APK大小的方法。minifyEnabled用于删除未引用的代码,而shrinkResources则针对未被使用的资源文件。实验证明,二者结合使用能显著降低APK体积,同时提供了具体步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.背景
对于缩小APk大小,除了开启混淆

minifyEnabled true
还有使用
shrinkResources true
说下这两者的区别
minifyEnabled 这个是用来开启删除无用代码,比如没有引用到的代码

shrinkResources 用来开启删除无用资源,也就是没有被引用的文件(经过实测是drawable,layout,实际并不是彻底删除,而是保留文件名,但是没有内容,等等),但是因为需要知道是否被引用所以需要配合mififyEnable使用,只有当两者都为true的时候才会起到真正的删除无效代码和无引用资源的目的

Android官方文档

二.实际动手试试
同样的资源代码

1.只有minififyEnable false 或者 minififyEnable false && shrinkResources true

APK大小为1.39M

资源文件和layout都存在且是有内容的

2.只有minifyEnable true

866K

资源文件和layout都存在且是有内容的

3.minifyEnable true && shrinkResources true

资源文件在但是没有内容大小都变成67字节,layout文件内容被清空

4.minifyEnable true && shrinkResources true 在res/raw/keep.xml(避免被误删除)写了配置的

<?xml version="1.0" encoding="utf-8"?>


没有在配置文件中声明保存的文件没有内容,声明保存的文件有内容(资源文件和layout文件)

注意:string.xml中没有被引用的怎么设置都不会被删除

可以通过gradlew clean assembleRelease - info来获得APK缩减资源的概览

当您压缩资源时,Gradle Console 会显示它从应用软件包中移除的资源的摘要。例如:

:android:shrinkDebugResources
Removed unused resources: Binary resource data reduced from 2570KB to 1711KB: Removed 33%
:android:validateDebugSigning

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值