Android 弱网环境分析

2020-02-08  本文已影响0人  嘎嘣脆糖

在网路应用流行的今天,我们已经很难再找到哪些应用是不需要网路的了,那么网路质量的好坏极大关系的影响着一个app的体验。

弱网环境

当提到这个词的时候我们可能会疑惑?什么叫弱网环境?
现在大部分人的手机都是4G手机,当我们使用手机流量时在信号不好的地方可能会降级到3G,2G,那么这些意味着手机信号不好的时候手机会去调整到一个高延迟低带宽的网络环境。

网络环境 2.75G 3G 4G 5G
带宽(上行/下行) 484kb/384kb 2m/7m 56-128m >50m/>100m
延迟 600-700ms 150-400ms 40-50ms 10ms

可以看到不同制式的网络标准能够提供的网络环境是不一样的。
弱网环境下会有很多问题

我们评测一个网络是否好通常通过以下几个参数去判定

分析工具

网络优化

什么事网络优化?网络优化在优化哪些内容?

网络延时

DNS解析

DNS 的解析是我们网络请求的第一项工作,默认我们使用运营商的 LocalDNS 服务。这 块耗时在 3G 网络下可能是 200~300ms,4G 网络也需要 100ms。

微信有自己部署的 NEWDNS,阿里云和腾讯云也有提供自己的 HTTPDNS 服务。对于大 网络平台来说,我们会有统一的 HTTPDNS 服务,并将它和运维系统打通。在传统的 DNS 基础上,还会增加精准的流量调度、网络拨测 / 灰度、网络容灾等功能。

dns

连接复用

tcp连接需要进行三次握手,tls连接需要进行秘钥协商然后建立连接,创建连接的代价是非常大的,可以通过复用连接来避免每次请求都进行重新建立连接。
在okhttp中当一次请求完成后,并不会立刻把连接释放,而是放到连接池中。这时如果 有另一个请求的域名和端口是一样的,就直接拿出连接池中的连接进行发送和接收数据, 少了建立连接的耗时。

这里我们利用 HTTP 协议里的 keep-alive,而 HTTP/2.0 的多路复用则可以进一步的提升 连接复用率。它复用的这条连接支持同时处理多条请求,所有请求都可以并发在这条连接 上进行。

压缩与加密

压缩

讲完连接,我们再来看看发送和接收的优化。我第一时间想到的还是减少传输的数据量, 也就是我们常说的数据压缩。首先对于 HTTP 请求来说,数据主要包括三个部分:请求 URL 请求 header 请求 body。

image.png

针对图片可以通过得知网络环境提供不同分辨率和质量的图片来节省网络带宽

上一篇 下一篇

猜你喜欢

热点阅读