zoukankan      html  css  js  c++  java
  • APP瘦身

    一、APP瘦身的概念

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

    二、APP瘦身的技巧

      1、配置gradle文件,开启minifyEnable,作用是开启混淆压缩模式,会过滤掉整个项目中未使用的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'
            }
    } 

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

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

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

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

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

        ① 打开tinypng碗盏,将项目中的png图片拖拽到网页中,自动进行压缩;

        ② 下载所有经过压缩的图片,替换项目中对应的png图片;

        ③ 该方式可以很大程度上减少图片的体积,可达50%左右,效果非常显著。

      5、采用webP格式的图片替换调png和jpg格式的图片

        webP的概念:

          webP是谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并且能节省大量的服务器宽带资源和数据空间。国内的淘宝、京东客户端都在使用,webP是未来图片格式的趋势。对于服务器来说,webP格式可以说是必用的格式,对于客户端来说,可以将比较大的png图片替换成webP格式的,从而减少apk的体积。

        如何得到webP格式的图片:

          两种方式:一种是直接让美工在作图时直接做成webP格式,还有一种就是使用转换工具,将当前的png图片转换成webP图片。

        如何将webP格式的图片应用到项目中:

          直接将得到的webP格式的图片替换项目中的png图片即可。

        webP的使用注意事项:

          Android4.0及以上才支持webP格式的图片!!!

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

        ① 首先使用压缩软件打开apk文件,删除那些没用用到的文件,主要是support包中自带的文件

        ② 然后进行安装,如果安装的时候报错,则删除apk中META_INF目录,在使用签名工具对apk进行重新签名即可

        注意:此方法有风险,因为我们删除了support包中的图片,而这些图片大多是被support包中的类锁使用的,比如ActionBar,所以有可能报错找不到资源文件,如果采用了这种方法,就需要对app进行全面测试发现没有问题之后,才能让app上线。

    总结如下:

      对apk瘦身的操作主要有这么两类:

      第一类是对图片进行压缩,主要是采用了第三方的工具比如说tinypng或者是将图片格式转换成为webP格式的图片;

      第二类是配置gradle文件,主要是开启了minifyEnabled和shrinkResources,并指定编译的语言包resConfigs;

      第三类是删除apk文件中未使用的图片,主要是support包中的图片文件。

      

  • 相关阅读:
    蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)
    蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)
    Java远程调用邮件服务器,实现邮件发送
    利用命令行来安装应用到android虚拟机
    sql查询语句优化需要注意的几点
    hdu1198--并查集
    处理百万级以上的数据查询提高效率的办法
    EasyMock入门
    百度绿萝算法2.0更新 外链数降低分析
    Memcached 学习笔记(二)——ruby调用
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6502298.html
Copyright © 2011-2022 走看看