Android 包大小的优化

对于缩小APk大小,除了开启混淆

minifyEnabled true

还有使用

shrinkResources true

两者区别:minifyEnabled 这个是用来开启删除无用代码,比如没有引用到的代码

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

可以把dex文件减小:
minifyEnabled  true   

曾经遇到过加载.so文件时由于开启 minifyEnabled true 导致c方法实现natvie里面的不识别

**实验结果 **
// 未 放一张1.32M大的无用图片
原包apk 大小: 1.43M 占用空间 1.43M 解压后:2.62M 占空间2.93M (其中 dex包 2.1M res 220K占用空间 516K)
1. minifyEnabled =false& shrinkResources = false

大小: 1.43M 解压后:2.62M 占空间2.93M (其中 dex包 2.1M res 220K占用空间 516K)

2. minifyEnabled =true& shrinkResources = false

大小: 857K占用空间 860K 解压后:1.35M 占用空间 1.66M (其中 dex包 848K占空间852K res 220K占用空间 516K)

3. minifyEnabled =false& shrinkResources = true

编译报错:

Removing unused resources requires unused code shrinking to be turned on. See http://d.android.com/r/tools/shrink-resources.html for more information.

4. minifyEnabled =true& shrinkResources = true

大小: 847K占用空间 848K 解压后:1.33M 占用空间 1.62M (其中 dex包 848K占空间852K res 200K占用空间 476K)

// 放一张1.32M大的无用未引用的图片
//原包apk 大小: 1.43M 占用空间 1.43M 解压后:2.62M 占空间2.93M (其中 dex包 2.1M res 220K占用空间 516K)

放过无用图片包的大小: 2.75M 解压后:3.94M 占空间4.25M (其中 dex包 2.1M res 1.53M占用空间 1.82M)

2.1. minifyEnabled =false& shrinkResources = false

大小: 2.75M 解压后:3.94M 占空间4.25M (其中 dex包 2.1M res 1.53M占用空间 1.82M)

2.2. minifyEnabled =true& shrinkResources = false
// 原包大小: 857K占用空间 860K 解压后:1.35M 占用空间 1.66M (其中 dex包 848K占空间852K res 220K占用空间 516K)
编译报错:

Failed to create directory 'F:\AuditionTest\MyApplication\app\build\outputs\apk\debug'

2.3. minifyEnabled =false& shrinkResources = true

编译报错:

ERROR: Removing unused resources requires unused code shrinking to be turned on. See http://d.android.com/r/tools/shrink-resources.html for more information.
Affected Modules: app

2.4. minifyEnabled =true& shrinkResources = true
里面放的zhuomian.jpg大小 1.32M 使用这两个属性后,没有引用的drawalbe zhuomian.jpg大小 变为 ok
大小: 848K占用空间 852K 解压后:1.33M 占用空间 1.62M (其中 dex包 848K占空间852K res 200K占用空间 476K)

  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

        debug{
            minifyEnabled true
            shrinkResources true
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值