Android App瘦身实践

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010127332/article/details/82684771
  • 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

展开阅读全文

没有更多推荐了,返回首页