Apk优化极致

1. webp

  WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。WebP既支持有损压缩也支持无损压缩。

     在Android Studio 中有专门的插件可以做png和jpg转为Webp的

     

2.svg

SVG的全称是Scalable Vector Graphics,叫可缩放矢量图形。它和位图(Bitmap)相对,SVG不会像位图一样因为缩放而让图片质量下降。它的优点在于节约空间,使用方便。

3.tint

tint在一定程度上也是可以减少apk 的体积,比如,我们一个imageview 做点击效果,按下和抬起是不一样的效果的时候,我们需要写一个seletor,然后放置两张不同的图片,那么tint可以通过一个矢量图,改变不同颜色值来实现这种功能,不需要两张图片

4. 代码混淆

在build.gradle中android节点下的xbuildtype中增加miniEnabled true便是开启了代码混淆,同时要配置代码混淆脚本

5.代码和资源压缩移除 

  shrinkResource true 这个不会删除没有用的资源,只是将检测到的没有用的资源改变结构,比如图片就是变成一个很小的黑色的占位图片,没有.xml,会删除里面的内容,但是文件都还在,

  如果用了反射或者动态获取,他是检测不到的,所以要保持这部分不被处理,要加一个keep.xml文件,保持下来

6. 资源打包

默认所有的资源都是支持国际化的,包括我们引入的第三方库都是如此,但是我们并不需要这么多,可能只需要英文和中文,所以我们在ProductFlavor中增加resConfigs('zh-rCN','en')就可以了

7. 动态资源库配置

目前市场上有armebi, armebi-v7a, armebi-v8a, mips, mips64, x86等,但是所有的都兼容armebi, 所以只要保留armebi就可以了,能有效的减少apk 的大小

8.lint 物理 删除无用的资源

9.资源res的混淆,7z压缩,对齐

猜你喜欢

转载自www.cnblogs.com/wangzehuaw/p/10897715.html