安卓Apk优化之瘦身

    xiaoxiao2021-03-25  128

    众所周知,apk的性能决定了用户的体验是否完美。只有得到用户的认可,我们的产品才能够生存下去。从而有了apk优化一说。而瘦身就是其中之一。

    瘦身是指在不减少App功能的前提下,通过一些技巧将打包出来的apk体的体积尽可能减少。这样做的好处有几个:加快用户下载速度,节省用户下载流量,提升用户下载体验。

    因为如果不进行瘦身,默认打包的apk会包含所有未曾用到过的源代码,资源文件等,极大地增加了apk文件的体积。

    App瘦身的常用技巧

    第一种:配置gradle文件,开启minifyEnabled,作用是启用混淆压缩模式,会过滤掉整个项目中未使用到的jar和class文件,对代码进行混淆,从而减少dex文件大小。

    具体做法如下:

    buildTypes { //增加构建类型 releaseMinifyEnabled { //开启dex字节码压缩,舍去未使用的jar和class文件 minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } //默认release构建类型 release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }

    第二种:配置gradle文件,开启shrinkResources,作用是将res目录下未使用到的图片文件进行特殊处理,其具体做法是将未使用到的图片全部变成1x1像素的小图,从而减少res目录的大小。

    具体做法如下:

    shrinkResources { //启用res资源过滤,会将项目中未使用到的图片变成1x1的小图,从而减少体积 shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }

    第三种:配置gradle文件,指定resConfigs,作用是指定打包时编译的语言包类型,未指定的其他语言包,将不会打包到apk文件中,从而减少apk体积的大小。

    具体做法如下:

    defaultConfig { applicationId "com.example.hh.appthin" minSdkVersion 14 targetSdkVersion 24 versionCode 1 versionName "1.0" //配置打包时编译的语言类型,默认会编译value目录,此处再增加一个中文类型 resConfigs("zh") }

    第四种:采用三方工具(如tinypng)来进一步压缩项目中的所有png图片,从而进一步减小apk体积。

    首先,打开tinypng网站,将项目中的png图片拖拽网页中,自动进行压缩; 然后,下载所有经过压缩的图片,替换项目中对应的png图片; 总结:该种方式能够极大的减小图片的体积,基本上能减小50%左右,效果非常显著,强烈建议掌握。

    第五种:采用webp格式的图片替换png和jpg格式的图片

    webp概念:
    WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式,国内的京东,淘宝客户端都在使用。webp格式是未来图片格式的趋势。 对于服务器来说,webp格式可以说是必用的格式。对于客户端来说,可以将比较大的png图片替换为webp格式,从而减少apk的体积。
    如何将得到webp格式的图片?
    有2种方式,可以选择让美工在作图的时候直接做成webp格式;也可以选择使用一些webp格式转换工具对当前已有的png图片进行转换。
    如何将webp格式的图片应用到项目中?
    直接将得到的webp格式图片替换项目中的png图片即可。
    webp使用注意事项
    Android4.0以及以上才支持webp格式,但是这并没有影响,因为我们开发时的minSDK就是14了,所以不用关心。

    第六种:比较hack的方式,删除已签名的apk文件中未使用的图片资源(主要是support包中自带的图片),然后使用证书进行重新打包。操作步骤如下:

    首先,使用压缩软件打开apk文件,然后删除那些没有使用到的文件,主要是support包中自带的图片 然后进行安装,如果安装的时候报错,则删除apk中META-INF目录,再使用签名工具对apk进行重新签名即可 注意:此方法有风险,因为我们删除了support包中的图片,而这些图片大多是被support中的类使用的,比如ActionBar,所以有 可能报错找不到对应的图片;如果采用了该方法,就需要对app进行全面测试发现没有问题后,才能让app上线。

    现在对应用瘦身技巧总结,并按照重点技巧进行分类和排序,那么分类总结如下:

    图片压缩:采用三方工具压缩png图片,或者使用webp格式图片替换png图片 配置gradle文件:主要是开启minifyEnabled和shrinkResources,并指定编译的语音包resConfigs 删除apk文件中未使用的图片,主要是support包中的图片文件
    转载请注明原文地址: https://ju.6miu.com/read-14440.html

    最新回复(0)