APK体积优化

关于 APK Size 的优化,网上有很多版本的介绍。在这里主要分享一下我的认知和理解。主要分两部分:安装包监控、安装包大小优化。

安装包监控

Android Studio 的 APK Analyser
这是 Android Studio 提供的一个 APK 检测工具,通过它可以查看一个 APK 文件内部各项内容所占的大小,并且按照大小排序显示。因此我们很容易观察到 APK 中哪一部分内容占用了最大空间。
APK体积优化
弹框选中你要分析的apk即可.
APK体积优化
从图中可看出我的res占据比较大(主要项目中有视频展示,我把视频存放在了raw中导致的)

安装包优化实践

1.删除无用文件
APK体积优化
APK体积优化

APK体积优化
会罗列出没有引用到的资源文件.可减少Apk的体积.

2.编译时期减少被打包到 APK 中的文件
使用 shrinkResources 能够在项目编译阶段,删除所有在项目中未被使用到的资源文件。但是需要将 minifyEnabled 选项设置为 true。

3.使用 resConfig 限定国际化资源文件
有时候我们使用到的三方库中可能会对各种国际化语言进行支持,但是我们自己的项目只支持某个语言,比如中文,那我们可以在 gradle 的 defaultConfig 中使用 resConfig 来限制打包到 APK 中的国际化资源文件,具体如下所示:
APK体积优化
4.文件优化
APK体积优化

根据分析出的情况,减小图片的大小。

APK体积优化

优先使用 VectorDrawable 图片,如果 UI 无法提供 VectorDrawable 图片,那么 webp 格式是一个不错的选择。Android Studio 也支持直接将 png 或者 jpg 格式图片转化为 webp 格式,如下所示:

APK体积优化
5.关于第三方的引用
在 App 中会引入各种三方的”轮子”,但是在引入之前最好权衡一下是否需要将其代码全部引入,造成不必要的代码或者资源也被打包到 APK 中。

总结
主要介绍了我们平时在项目中关于安装包优化的一些实践总结,主要分两方面:安装包监控、安装包优化实践。实际上,在开发过程中,良好的编程习惯和严格的 code review 也是非常重要的。希望能帮到大家。