版权声明
1.本文版权归原作者所有,转载需注明作者信息及原文出处。
2.本文作者:赵裕(vimerzhao),永久链接:https://github.com/vimerzhao/vimerzhao.github.io/blob/master/android/2020-02-11-apk-size-opt.md。
3.作者公众号:V大师在一号线 。联系邮箱:vimerzhao@foxmail.com。
业务的增加、产品的演进是安装包大小增加的本质原因。但是在演进之路上,由于一些所谓的技术债务,如:
正是由于这些疏忽,安装包有了不必要的增加,这也是我们需要优化的部分。
可能有的人觉得,现在基本是4G、WiFi的网络环境,手机设备的性能和存储空间也非常充足,所以用户对安装包大小应该不是十分敏感。但是,这其实是一种错觉,更多的时候应该看自己的目标市场,如果是一二线城市当然没问题,但如果是三四线城市、农村等下沉市场或者印度、巴西等海外市场,上述假设显然不成立了。
一般来说,安装包大小会影响以下指标:
综上,对于一个“有余力”的团队,安装包大小的优化还是很有必要的。
由前面的原因可知,从业务层面来看,安装包大小的优化是“解铃还须系铃人”,即:
这些方法都比较常规,更像是对症下药,下面梳理一些技术上普适的方法,独立于业务,在上面那些方法都尝试后,还可以使安装包大小“更下一层楼”。
安装包的主要构成就是代码和资源,所以优化也是从这两个方面着手。
一般是通过ProGuard,但很多用不好,且存在管理问题。最后一看项目,很多类被Keep住了,也不知道历史背景是啥。
so的优化手段和Java代码其实比较类似,核心还是通过机制化的手段去裁剪、压缩。
通过AndResGuard工具压缩资源名称,进而降低索引文件的大小。
常规的手段很容易到达瓶颈,高深的手段又有复杂、兼容性等诸多问题,但综合来看,还是两点:
很多时候,优化就是权衡,重要的是取舍:
以上
欢迎扫码关注作者公众号,及时获取最新信息。
原文:https://www.cnblogs.com/zhaoyu1995/p/12319360.html