在开发中随着业务迭代,突然某一天发现,apk怎么这么大了? apk太大浪费用户的流浪不说,用户一看,心里一权衡,下载这个apk可能要30s,超出了可以容忍的范围,果断不下载安装了。这样在无形中就损失了很多潜在用户。
几年前记得pp助手,现在是uc旗下的产品了,当年没被收购。pp助手我记得很清楚当时只有2M左右,可是里面的功能很多,那时候我觉得这个产品很不错,一定在apk大小方面倾注了很多注意力。后来自己所在团队的产品(gosms)可能让上面的人觉得过重,另外感受到竞品的压力。就开发了一个轻量级的产品(zerosms),砍掉了很多功能,apk也终于控制在了2M左右。虽然一直觉得apk大小的优化很重要,但是直到今天才做一些总结,不得不鄙视自己。
现在android studio自带了一个分析apk大小的工具;build - > analyze apk。打开工具界面后导入apk就可以查看各个文件夹的大小,所占百分比等,一目了然,非常直观。不似以前使用反编译工具,很麻烦。
一般来说根据分析的结果总结有以下几个原则:
1.图片占用空间太大;建议把所有的图片都做压缩处理。尽量使用svg 和 vector;尽量使用shape;一句话能用xml实现的就不要使用图片,当然如果效果过于复杂,svg渲染效率可能比bitmap渲染慢很多,这个时候就不强求了。
- .so文件占用空间太大,可以考虑使用 ndk filter 只编译俩个架构的so文件。armeabi-v7a和x86
- 和第二点的相似,对于不同的设备发布不同的包,使用apk splits。没有在国内市场发布过apk,不太清楚国内市场支不支持这种方式。
4.记得开启proguard去掉重复代码和无用代码资源等。
以上就是几点关于apk大小控制的几点思考。
网友评论