如何减少APK包的大小

Posted 高速蜗牛a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何减少APK包的大小相关的知识,希望对你有一定的参考价值。

最近开发完公司的项目,和ios的哥们一起上线,发现IOS的包大小近20M,而android的安装包仅9M,过大的下载包可能会降低新用户的下载兴趣,所以适当减少安装包的大小还是很重要的。

1.使用ProGuard混淆

ProGuard包括以下4个功能:
压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。
优化(Optimize):对字节码进行优化,移除无用的指令。
混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。
预检(Preveirfy)。

混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解)。

2.开启shrinkResources

移除无用的资源,但是可能会造成:specified for property 'resourceFile' does not exist. 慎用!

3.使用resConfigs "zh"

删除无用的语言资源。google给我们的apk提供了国际化支持,如适应不同语言的字符串资源等等,但是在很多情况下我们只需要一些指定语言的资源就可以了,这个时候我们可以使用resConfigs方法来配置。

4.对于非透明大图,png转化为jpg格式

5.使用shape文件代替一些背景图片

6.切图最多使用两套,使用主流分辨率

7.限制app支持的cpu架构的数目


让你的app支持 armabi 和 x86 架构就够了。如果你的项目有sina分享或者百度地图SDK,他们有7中CPU架构的so库,如果全部放到项目中,就只能呵呵了。


另外,Android Studio在2.2以后提供了一个Apk分析器,能够查看Apk文件的组成部分一起各自大小所占的比重,有兴趣的同学可以研究一下。使用方法:



以上是关于如何减少APK包的大小的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在React Native中将生产的APK大小减少70%?

通过修剪 OpenCV 库来减少 android apk 的大小

[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小

[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小

[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小

Android 压缩资源不会改变 APK 大小