美文网首页
关于压缩apk包大小的实践

关于压缩apk包大小的实践

作者: Amon9527 | 来源:发表于2018-06-13 22:11 被阅读0次

前段时间接手了一个项目,需要在该项目上进行二次开发。经过一段996的加班节奏之后,初步完成了开发工作,但是发现安装包竟然超过有60M,于是着手进行压缩。

在进行压缩之前,我们先来了解下安装包内部构造及各部分所占用的空间大小,一来可以知道压缩的主要方向,再者可以跟压缩后的效果进行比较。方法很简单,直接将apk包拖到Android studio就行了,然后你就可以看到如下的界面

apk构造(压缩前).png

可以看到,lib和assets占用了超过90%的空间,所以这两块是我们这次优化的重点(不同的app实际情况不同哈)。接下来是具体的实践步骤:

压缩图片文件

图片文件压缩是针对jpg和png格式的图片。我们通常会放置多套不同分辨率的图片以适配不同的屏幕,这里可以进行适当的删减。在实际使用中,只保留一到两套就足够了(保留一套的话建议保留xxhdpi,两套的话就加上hdpi)。然后再对剩余的图片进行压缩,我用的工具是tinyPng。可以把图片上传至网站进行压缩,然后下载替换,这种情况没有数量的限制。也可以通过脚本或者插件进行处理,这种情况下每个账号每天有500个免费调用机会,不过通过多注册几个账号可以解决这个问题(土豪的话就不用这么麻烦了)。

压缩lib文件

由于引用了很多第三方库,lib文件夹占用的空间通常都很大,特别是有so库的情况下。很多so库会同时引入armeabi、armeabi-v7a和x86这几种类型,一式三份。结合自己的经验,这里可以只保留armeabi或armeabi-v7a的其中一个就可以了,实际上微信等主流app都是这么做的。

微信so库.png

我们在build.gradle里直接进行配置就可以了

ndk配置.png

如果第三方库刚好没有我们选择保留的类型的so库该怎么办呢?我们之前就碰到这种情况,项目保留的是armeabi版本,但是在接入商汤人脸识别sdk的时候,他们只有armeabi-v7a版本的库。别担心,这种情况把他们的so库直接手动copy到armeabi文件夹下就可以了。

assets文件压缩

这个文件夹的压缩就原始得多了,直接检查该文件夹下的文件还有没有在项目中用到,没用到的话删掉就可以了。虽然简单,但是通常会被我们所忽视,可能很多文件都已经没用了,却一直躺在那。

资源混淆

可以使用AndResGuard对资源进行压缩,在压缩apk包的同时,还能增加别人破解的难度。使用方法很简单,这里就不展开讲了。

资源混淆后.png

你看,是不是跟代码混淆了一样,完全看不出来这些东西是干嘛的。

压缩资源和代码

可以通过在build.gradle配置以下几个属性

压缩资源和代码配置.png

shrinkResources为true表示移除未引用资源,和代码压缩协同工作。minifyEnabled为true表示通过ProGuard启用代码压缩,配合proguardFiles的配置对代码进行混淆并移除未使用的代码。代码混淆在压缩apk的同时,也提升了安全性。

最终,我们把apk包压缩到30M以内,效果还是很显著的。

apk构造(压缩后).png

希望以上方法也能帮到你。

相关文章

  • 关于压缩apk包大小的实践

    前段时间接手了一个项目,需要在该项目上进行二次开发。经过一段996的加班节奏之后,初步完成了开发工作,但是发现安装...

  • Android性能优化:安装包优化

    1.常规apk瘦身 apk压缩包的大小经过优化之后变小 1.1 apk中的图片的压缩 对apk中的图片进行压缩 【...

  • Android APP 终极瘦身指南

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装;虽然说APK...

  • APK瘦身-是时候给App进行减负了!

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我...

  • 【性能优化】也谈APK瘦身

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我...

  • Android应用瘦身实践

    参考文章 APK瘦身记,如何实现高达53%的压缩效果 Android APP终极瘦身指南 优化效果 优化前包大小是...

  • APK体积减少攻略

    APK体积减少攻略 整体7zip压缩 将APK包解压到文件夹 全选所有文件,右键“添加到压缩包”3.“压缩格式”必...

  • 15 性能优化-Apk瘦身-代码混淆和资源压缩

    Android apk瘦身最佳实践(二):代码混淆和资源压缩 要尽可能减小 APK 文件,我们应该启用压缩来移除发...

  • 安卓逆向:apk 文件简介

    apk 文件 apk 文件本质上是一种压缩包,修改后缀 .apk 为 .zip 即可解压缩。但是这种方式很多内容是...

  • Google Play的分包(APK扩展文件obb)

    APK 扩展文件(obb) Google Play 要求用户下载的压缩后 APK 大小不超过 100 MB。 对于...

网友评论

      本文标题:关于压缩apk包大小的实践

      本文链接:https://www.haomeiwen.com/subject/kcojeftx.html