Android减小apk包大小的建设性方案

在android studio2.2中新添加APK Analyzer功能,可以分析apk包的构成。
在顶部导航的build下可以找到,分析一个apk可以看到:
Android减小apk包大小的建设性方案_第1张图片

需知:

res中是存放图片资源的;

lib中是存放so库,各个cpu架构的;

classes.dex是java源码编译后生成的java字节码文件;

assets是存放不需要编译处理的文件;

resources.arsc是编译后的二进制资源文件,包括图片,文本索引;

META-INF是存放签名信息的;

AndroidManifest.xml是描述配置文件的。

观察上图发现res中占最大资源,因此可以有以下操作:
1)使用图片压缩工具Tinypng(https://tinypng.com/)
2)删除无用的资源文件以及代码,在android studio中输入unUsed resource搜索到后将其删除。

另外还可以在以下方面做改善:
1.使用ProGuard,ProGuard 会自动处理应用的字节码,然后再将所有内容打包到.apk文件中。
2.合理的引入Library,有时项目中引入了一个Library,可能只会用到其中一部分方法或一种控件,但是我们却把整个Library引入了进来,这时应尝试换一种Library替代或者自己抽取其中有用的部分。
3.可使用xml替代一些背景图
4.减少语言支持,可以通过修改gradle配置,去除不需要部分,(80种减到5种,有一个default)apk可减少0.61M。
defaulConfig{
resConfigs "zh-rCN", "zh-rHK", "zh-rTW", "en"
}
5.架构支持,一般的应用完全可以根据自己业务需求选择使用armeabi或者armeabi-v7a一种支持就行。
可以通过gradle配置。
aaptOptions{
ignoreAssetPattern 'color-night-v8:drawable-night-v8'
}
6.动态下发,比较大的so可以选择动态下发的形式延迟加载,代码上需要加一些判断逻辑。

你可能感兴趣的:(android开发)