Android减小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进行版本升级时,可以采用增量升级的方式,极大地减小下载升级包带来的流量损耗;例如阿里云的hotfix,但是它有一个问题是:它增量更新只适用于application初始化之后代码进行的修改,如果你修改了manifest,gradle等文件,就需要进行新版本发布,进行全量更新。
7.apk本身可以将功能进行插件化拆分,用户不常用的功能,在用户使用时再进行下载和安装。这个推荐360的replugin,大家可以去官网看下官方文档,或者giuhub上下载 https://github.com/Qihoo360/RePlugin/tree/master/replugin-sample

你可能感兴趣的:(android)