减小Apk包大小的常用方法

我们之所以要减小apk的大小,一方面是为了节省用户手机的内存;另一方面是为了节省用户在App安装和版本升级时的流量;

直接减小apk文件大小的方法:

1.使用图片压缩工具;

目前常用的工具是:

ImageOptim,压缩效果很好,使用默认配置即可。但是仅有MAC版的;

Tinypng,官网:https://tinypng.com/,也非常简单易用,压缩效果也很好。

2.删除无用的资源文件以及代码;

在Eclipse开发环境下通过Android Lint工具可以找出项目中无用的资源及class文件;在Android Studio环境下,通过右键->Analyze->Run Inspection By Name ->输入"unUsed resource"进行查找;

3.进行混淆。

proguard不仅有增加代码安全性的作用,在混淆过程中还会对代码进行shrink等瘦身优化,这会进一步减小apk的大小;详见官网:https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/introduction.html;

4.只保留armeabi目录下的so文件

这是一个有争议的方法。在运行性能、手机平台兼容性和apk大小之间的一个取舍和抉择。

具体方法是:在app的Build.gradle里加上如下配置:详见:关于Android的.so文件你所需要知道的

android {
    ... 
    splits {
        abi {
            enable true
            reset()
            include 'armeabi'//'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a', select ABIs to build APKs for
            universalApk false //generate an additional APK that contains all the ABIs
        }
    }
    ...
}
这样打出的apk包就只包含了armeabi目录下的so文件。

从App开发的角度说,还有如下方法可以减小apk的大小:

5.UI团队在设计页面时,可以从设计元素的简洁性以及复用性上多下功夫,从源头上减少图片资源的大小和数目;

6.apk进行版本升级时,可以采用增量升级的方式,极大地减小下载升级包带来的流量损耗;

7.apk本身可以将功能进行插件化拆分,用户不常用的功能,在用户使用时再进行下载和安装。






你可能感兴趣的:(Android)