Android性能调优 - 存储优化、Apk包体积优化和网络优化

包体积优化:

话术:优化之前项目的包体积大小是 80M,优化之后是 50M.

极限瘦身

  1. 图片转为webp格式

  1. 去除多语言

  1. 去除不必要so库

  1. 开启混淆

离线资源处理:

离线资源建议从服务器下载,不打入apk包中(动态翻译库)

存储优化

sp优化:

由于同步commit比异步apply(先内存,再磁盘)更加耗时;因此将存储的数据进行批量apply,而不是立刻commit,减少性能消耗;

网络优化

说说你在项目中网络优化?

程序员:

有,这一点其实可以通过 OKHTTP 连接池和 Http 缓存来说一下(当然这里不会再展开分析 OKHTTP 源码了)

面试官:

那你具体说一下吧

程序员

移动端获取网络数据优化的几个点

1、连接复用(http2的特点):节省连接建立时间,如开启 keep-alive。于Android来说默认情况下HttpURLConnection和HttpClient都开启了keep-alive。只是2.2之前HttpURLConnection存在影响连接池的Bug。

2、请求合并(http2的合并):即将多个请求合并为一个进行请求,比较常见的就是网页中的CSS Image Sprites。如果某个页面内请求过多,也可以考虑做一定的请求合并。

3、减少请求数据的大小(http2的头部压缩和okhttp的gzip压缩):对于post请求,body可以做gzip压缩的,header也可以做数据压缩(不过只支持http 2.0)。 返回数据的body也可以做gzip压缩,body数据体积可以缩小到原来的30%左右(也可以考虑压缩返回的json数据的key数据的体积,尤其是针对返回数据格式变化不大的情况,支付宝聊天返回的数据用到了,模仿http2的头部Hpack压缩方式)。

此外,这里既然都提到okhttp的优化,可以再讲一下connect连接池、http缓存、责任链等;

4、根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)。

5、使用HttpDNS优化DNS:DNS存在解析慢和DNS劫持等问题。HTTPDNS 则不同,不走传统的 DNS 解析,从而绕过运营商的 LocalDNS 服务器,还缩短了解析路径,有效的防止了域名劫持,提高域名解析的效率。

(客户端下游的网络优化)

1.使用缓存。

2.合并网络请求,减少请求次数

3.实时的信息上报改为非实时上报

4.请求一个图片时进行压缩

5.使用webp图片

说了这些之后,再说一下你当前使用网络框架它们做了哪些优化比如 OKHTTP(Socket 连接池、Http缓存、责任链)、Retrofit(动态代理)。说了这些一般也行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值