Android App瘦身实践

  • App临发布前需要做一次瘦身工作,下面就简单记录下我的app瘦身的实践过程。
  • 开发中项目就只使用了一套资源,xxhdpi目录下放的1080X1920的图片资源,打包后Apk大小:29.4M

瘦身前29.4M,开始瘦身

1. 删除不用的资源文件(drawable资源,string资源,dimenx资源,raw资源)
  • 自动删除:选中res——右键——Refactor——Remove Unused Resources
    在这里插入图片描述

  • 注意:不要选中Delete uuused @id,以防出现找不到资源id的莫名错误,而且资源id本身没有多大
    在这里插入图片描述

  • 手动删除:自动删除只能把项目中从未引用的资源文件删除掉,还存在一些被引用过但实际未使用的,例如我的raw下的.wav文件,我记得后来是不用这个音频文件了
    在这里插入图片描述

  • 选中改文件,右键——Find Usages,或者Alt+F7,查看使用到该音频文件的地方
    在这里插入图片描述

  • mediaConnected使用到该音频文件,再看mediaConnected在哪使用了,光标放在mediaConnected变量上,同样右键——Find Usages,或者Alt+F7,发现还是只有这一处使用了mediaConnected变量,那么mediaConnected就是一个未被真正使用的变量,注释起来也不影响,然后再手动删除connected.wav文件。

2. 使用三方工具(如tinypng)压缩项目中的所有png图片,从而进一步减小apk体积。
  • 打开tinypng网站https://tinypng.com/,将项目中的png图片拖拽网页中,自动进行压缩;
    在这里插入图片描述
  • 压缩完成后,Download all—下载所有经过压缩的图片,替换项目中对应的png图片;
  • 总结:这种方式能够极大的压缩图片大小,至少能减小50%左右,效果非常棒,墙裂推荐。
3. 配置build.gradle文件,开启minifyEnabled,shrinkResources
buildTypes {
        release {
            minifyEnabled true //开启dex字节码压缩,舍去未使用的jar和class文件
            debuggable false
            zipAlignEnabled true //减少应用在运行时的内存消耗
            shrinkResources true //启用res资源过滤,会将项目中未使用到的图片变成1x1的小图,从而减少体积
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            debuggable true
        }
    }

瘦身后大小:22.1M

  • 项目中的so包已经占用了14M,瘦身前29.4M,只有15.4M的可优化空间
  • 压缩比:(29.4-22.1)/15.4 = 47%

另外,发现一篇更多更全的App瘦身技巧文章:
https://mp.weixin.qq.com/s?__biz=MzI0MjE3OTYwMg==&mid=2649551610&idx=1&sn=df2501c18ea8521d363f4574c8dcbba5&chksm=f1181987c66f909130afe1b7e61ac09d12dd7641271fde6d2d15cecf30bc4c921e79667774ed&mpshare=1&scene=1&srcid=0913OkyYe5aW39IPgHc4uVoH#rd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值