APK瘦身从11M到7.8M
来源:互联网 发布:mysql原理 编辑:程序博客网 时间:2024/06/06 00:19
今天瘦身的应用
让我们先来看没有瘦身的apk大小
第一步:分析应用,去除无用文件
可以看到该应用大小大约是11M,相对一个资讯类应用而言还是显的有点大了,既然是应用瘦身那我们就应该先思考哪些资源比较大。可以想到的是图片、第三方库…不过这终究只是我们自己推测的并没有一个明确证据。还好Android Studio提供了一些工具可以让我们看到apk中各文件所占比重,然后我们可以看那些较”重”的文件是否有无用文件,工具路径如下 :Builde -> Analyze APK..
lib文件夹所有比重最大,但该文件夹里的东西是编译时生成的,所以无法删除.再来让我们看看assets目录。
我们发现了一些字体,既然有字体那可能在app中用到了,我们把app打开看看.
点开后,发现只有标题和设置页面用到了字体,可是assets目录下明明有几种字体,要不要删除多于的呢…
既然是字体那可能用到了Typeface这个属性,全局搜索(Shift + Crtl + F)
我们发现只有values下有该属性,难道没有用字体吗?可是app中明明有字体效果啊?既然在标题用了字体就让我们看看标题.
终于在这里找到了字体的引用,只用了一种字体,既然如此就删掉其他无用的字体,删除后apk大小如下.
相较最开始小的将近3m,让我们看看app是否可以正常运行,字体是否有改变.
字体没有变化,且程序正常运行,完美.
第二步:调整图片大小
该应用的图片是比较少的,瘦身的效果肯定不会很明显,但对多图片的应用就不好说了,我们对图片的调整主要分为再部份:对png的压缩,将jpg格式改成webp格式.
图片真少。。我们对Png的压缩主要用到了Tinypng这个网站,我们只要把png图片上传到这个网站就会自动帮助我们压缩,最后我们只下载压缩后的图片即可.
图片越大压缩效果越明显,简直是神器,且对图片的质量不会有明显的损耗.
对于webp的介绍在这里,我们不做讲解,将jpg转成webp我用的是格式工厂,虽然网上也有在线的,但不知道是不是我人口不好,没有一个打得开。。。
可以看到webp明显比较jpg小了很多,经过图片调整后apk的大小如下.
瘦身后的应用正常运行,且图片与原来的区别小到简直看不出来.
除了以上两种方式可以对apk进行瘦身外,还可以用混淆代码、资源,延迟加载so、矢量图等方式对apk更进一步的瘦身,其实这些东西是我们平常写代码就应该养成的习惯,我这里就不做过多介绍了…
- APK瘦身从11M到7.8M
- android APK瘦身全面总结——如何从32.6M到13.6M
- APK瘦身全面总结——如何从32.6M到13.6M
- APK怎么从18M减小到9M
- 安卓优化之apk瘦身(27.7M-->17.5M)
- 输出11到999之间的数m,使得m;m*m;m*m*m都是回文数
- 如何对chromium进行瘦身,把25M的大小较少到10M左右呢?
- 从128M升级到256M的DDR问题
- 内存优化 从190M到5M
- 取从M到N行
- 输出从m到n的值、
- 显示从N行到M行
- 从1到m随机n个数
- 如何把hotmail从2M升级到25M在升级到250M的过程
- M
- m
- m,
- m
- [WinForm] VS2010发布、打包安装程序(超全超详细)
- BZOJ3365: [Usaco2004 Feb]Distance Statistics 路程统计 点分治
- java 开发,测试 hdfs 时报错: java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set
- 根据StringBuffer、StringBuilder想起的的线程安全与线程不安全
- 带新手走进神秘的HTTP协议
- APK瘦身从11M到7.8M
- [斐波那契博弈] BZOJ 2275 [Coci2010]HRPA & HDU 2516 取石子游戏
- leetcode刷题请单
- 2017年2月17日
- 390. Elimination Game
- POJ2991-Crane-线段树+计算几何
- JAVA排序方法
- [最小环 最小环计数 最大平均环 模板题] POJ 1734 Sightseeing trip & FZU 2090 旅行社的烦恼 & POJ 2949 Word Rings
- HDU2612 Find a way