APK瘦身从11M到7.8M

来源:互联网 发布:mysql原理 编辑:程序博客网 时间:2024/06/06 00:19

今天瘦身的应用
让我们先来看没有瘦身的apk大小

原大小
第一步:分析应用,去除无用文件
可以看到该应用大小大约是11M,相对一个资讯类应用而言还是显的有点大了,既然是应用瘦身那我们就应该先思考哪些资源比较大。可以想到的是图片、第三方库…不过这终究只是我们自己推测的并没有一个明确证据。还好Android Studio提供了一些工具可以让我们看到apk中各文件所占比重,然后我们可以看那些较”重”的文件是否有无用文件,工具路径如下 :Builde -> Analyze APK..

大小比重
lib文件夹所有比重最大,但该文件夹里的东西是编译时生成的,所以无法删除.再来让我们看看assets目录。

assets
我们发现了一些字体,既然有字体那可能在app中用到了,我们把app打开看看.

应用页面
点开后,发现只有标题和设置页面用到了字体,可是assets目录下明明有几种字体,要不要删除多于的呢…
既然是字体那可能用到了Typeface这个属性,全局搜索(Shift + Crtl + F)

Typeface
我们发现只有values下有该属性,难道没有用字体吗?可是app中明明有字体效果啊?既然在标题用了字体就让我们看看标题.

TextView
终于在这里找到了字体的引用,只用了一种字体,既然如此就删掉其他无用的字体,删除后apk大小如下.

apk size

相较最开始小的将近3m,让我们看看app是否可以正常运行,字体是否有改变.

删除无用字体后
字体没有变化,且程序正常运行,完美.

第二步:调整图片大小
该应用的图片是比较少的,瘦身的效果肯定不会很明显,但对多图片的应用就不好说了,我们对图片的调整主要分为再部份:对png的压缩,将jpg格式改成webp格式.
部份图片
图片真少。。我们对Png的压缩主要用到了Tinypng这个网站,我们只要把png图片上传到这个网站就会自动帮助我们压缩,最后我们只下载压缩后的图片即可.

png压缩
图片越大压缩效果越明显,简直是神器,且对图片的质量不会有明显的损耗.
对于webp的介绍在这里,我们不做讲解,将jpg转成webp我用的是格式工厂,虽然网上也有在线的,但不知道是不是我人口不好,没有一个打得开。。。

jpg转webp
可以看到webp明显比较jpg小了很多,经过图片调整后apk的大小如下.

图片调整后大小
瘦身后的应用正常运行,且图片与原来的区别小到简直看不出来.

应用正常运行
除了以上两种方式可以对apk进行瘦身外,还可以用混淆代码、资源,延迟加载so、矢量图等方式对apk更进一步的瘦身,其实这些东西是我们平常写代码就应该养成的习惯,我这里就不做过多介绍了…

0 0
原创粉丝点击