Android中5种app瘦身方式

Android中5种app瘦身方式

App瘦身的概念

  • App瘦身是指在不减少App功能的前提下,通过一些技巧将打包出来的apk体的体积尽可能减少。
    这样做的好处有几个:加快用户下载速度,节省用户下载流量,提升用户下载体验。
    如果不进行瘦身,默认打包的apk会包含所有未曾用到的源代码、资源文件等,极大的增加了apk的体积。

App瘦身的常用技巧

  • 第一种:配置build.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'
     }
} 
  • 第二种:配置build.gradle文件,开启shrinkResources,作用是将res目录下未使用到的图片文件进行特殊处理,其具体做法是将未使用到的图片全部变成1x1像素的小图,从而减少res目录的大小。
  • 弥补minifyEnabled中的不足。
    具体做法如下:
    shrinkResources {
        //启用res资源过滤,会将项目中未使用到的图片变成1x1的小图,从而减少体积
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  • 第三种:配置build.gradle文件,指定resConfigs,作用是指定打包时编译的语言包类型,未指定的其他语言包,将不会打包到apk文件中,从而减少apk体积的大小。
    一般我们只支持中文和英文。
    defaultConfig {
         applicationId "com.example.lxj.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了,所以不用关心。

你可能感兴趣的:(Android中5种app瘦身方式)