记一次APP体积优化的经历

APP介绍

在自己没做安卓开发之前,对于从应用市场下载的APP的体积很少关注,有时候看到要下载的APP体积很大,也会告诉自己这说明是APP的功能比较多,是强大的外在表现。后来我做了安卓开发之后,随着对APP的开发、优化、打包和上架理解的加深,才改变了这一想法,但是一般APP的体积都不会很大,所以也就仅仅是将体积优化方面的内容看看了解一下,很少在项目中使用,但是最近的一个项目却使我逼着自己去优化,因为这个APP的功能不多,但是体积却达到了70多M,真的是是可忍孰不可忍,毅然决然的走上了帮APP减肥的道路。
首先,有必要介绍一下,这款APP的主要功能,这款APP的首页是用来展示公司形象和业务范围的,你可以认为是把公司几十页的宣传海报分类后放到了首页,实际上也就是这样,
我的天哪,第一次见到这种APP,这真的是让我长见识了。界面效果大家可以参考YouTube的首页,只不过人家放的是视频,我们放的是图片。首页上展示了六个模块,点开之后进入的是一整张大的长图片,有的长图可以达到2M,想想都吓人。
好了,下面开始讲开发和优化中的过程和处理措施。

使用tinypng对原图进行压缩

记一次APP体积优化的经历_第1张图片
压缩完之后再使用drawable-importer插件将图片生成多种分辨率放在文件夹下,记一次APP体积优化的经历_第2张图片记一次APP体积优化的经历_第3张图片
经过这一波操作后APK的体积大了很大,在android studio中有一个分析APK体积的工具,可以通过如下步骤进行分析:菜单栏中的Build -->Analye APK打开,打开后页面如下(这是随便新建的一个项目):
记一次APP体积优化的经历_第4张图片
可以看到这里有各个部分在APK整体中的所占的大小和比例,一般来说都是图片占的比例最大,由于我在项目中使用的都是大图和长图,所以可以右键点击图片在出现的菜单中找到 Convert to WebP…,一路单机就可以完成转换,这个时候再打包或者分析APK,体积就会小很多。当然,还可以在app目录下的build.gradle中通过压缩来进一步缩减体积。
修改前:

 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

修改后:

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

我在项目中就这样结束了APP的体积优化之旅。修改的成果还是很可观的。下面是我记录的各个部分优化前后的体积变化。

  • 最初:27.54M
  • 带有assets:72.98M
  • 无assets:71.92M
  • 将图片格式转为webp格式后:39.63M
  • 移除无用的图片资源后:17.67M
  • 不开启压缩:14M
  • 开启混淆和shrink后:13.3M
    以上就是整个APK优化过程,记录一下,以便告诉自己优化体积还是很重要的,尤其是在功能和体积不匹配的情况下。

你可能感兴趣的:(android)