Android开发-常用的Apk瘦身方法

179 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

前言

相信很多刚开始接触安卓开发的都不会在编码的过程中去在意自己代码是否存在冗余,长期的业务迭代造成的项目中积累了很多无用的资源文件,或者是因为需求变更导致废弃的方法,布局文件等,长期下来,随着业务的不断叠加,我们最后编译打包生成的apk文件就会非常的大,造成的后果就是客户使用我们的APP需要下载很大的资源包,消耗很多的时间,在WiFi情况下,客户或许可以接受,但是如果在使用自己流量的情况,客户是否可以接受,每次的更新是否是全量更新,给用户带来很大的使用成本,用户体验极差,apk瘦身,第一是对我们自身编码的优化,其次是对客户的体验的一种变相提升,下面就简单介绍几种常用的apk瘦身方法。

常用的Apk瘦身方法

开启代码混淆:相信很多刚开始开发的同学都不知道为什么要做代码混淆,代码混淆首先是对代码安全的一种保护,因为开启混淆后编译生产的类名,属性名,参数名都是用类似a/b/c等字母代替,无法看到实际的代码;其次代码混淆它也起到一定的压缩效果,相比较一个真实的类名,方法名来说,一个a代替的类,体积上也是起到了一定的缩减。

合理使用第三方资源库:合理这2个字怎么理解了,比如我们需要一个实现一个可以自定义样式的进度条,包括圆形,长方形,或者一个进度加载的动画,我们找到了一个第三方库,它提供了很多种不同的样式,动画效果,但是我们只需要其中一个或者几个,一般情况下,我们会直接把这个第三方库引入直接使用,但是我们有更好的方法,那就是摘取我们需要的部分源码,放到一个package下面,作为一个工具类来使用,这样我们也可以省去很多不必要的代码引入;

资源文件瘦身:这个很容易理解,就是去除我们项目中很多不使用的资源文件或者是布局文件,其次在gradle的配置中加入shrinkResources属性配置,它的意思就是去除无用的资源文件;当然光这样做是不够的,相信在以往的开发中项目中都配置了好几份资源文件,有mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi,其实现在已经很少有分辨率很低的手机了,而且大部分的APP都不兼容低分辨率的手机,其实我们按照高分辨率兼容小来适配,只需要使用一套图就可以了,这样可以大大减少我们项目的资源文件。

还有很多其他的瘦身方法,例如so文件瘦身,webp图片转换等等都可以有效的对我们生成的apk进度瘦身。