Android 开发高手课
张绍文
前微信高级工程师,Tinker 负责人
52721 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 62 讲
导读 (1讲)
模块一 高质量开发 (25讲)
Android 开发高手课
15
15
1.0x
00:00/00:00
登录|注册

16 | 网络优化(中):复杂多变的移动网络该如何优化?

Mars
Chromium
OkHttp
高性能
全局网络控制
统一编程接口
安全
弱网络
速度
IPv6
QUIC
其他优化
压缩与加密
连接复用
HTTPDNS
高质量网络库
何为网络库
何为网络优化
课后作业
总结
QUIC与IPv6
大网络平台
移动端优化
复杂多变的移动网络该如何优化?

该思维导图由 AI 生成,仅供参考

在 PC 互联网时代,网络优化已经是一项非常复杂的工作。对于移动网络来说,弱网络、网络切换、网络劫持这些问题更加突出,网络优化这项工作也变得更加艰巨。
那作为一名移动开发者,面对复杂多变的移动网络我们该如何去优化呢?可能也有人会说,我只要用好 AFNetworking/OkHttp 这些成熟网络库就可以了,并不需要额外去做什么优化。那你确定你真的能用好这些网络库吗?它们内部是怎样实现的、有哪些差异点、哪个网络库更好呢?
虽然我们可能只是客户端 App 开发人员,但在关于网络优化还是可以做很多事情的,很多大型的应用也做了很多的实践。今天我们一起来看一下,如何让我们的应用在各种的网络条件下都能“快人一步”。

移动端优化

回想上一期我给出的网络架构图,一个数据包从手机出发要经过无线网络、核心网络以及外部网络(互联网),才能到达我们的服务器。那整个网络请求的速度会跟哪些因素有关呢?
从上面这张图上看,客户端网络库实现、服务器性能以及网络链路的质量都是影响网络请求速度的因素。下面我们先从客户端的网络库说过,看看应该如何进行网络优化。
1. 何为网络优化
在讲怎么去优化网络之前,我想先明确一下所谓的网络优化,究竟指的是什么?在我看来,核心内容有以下三个:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了移动网络优化的重要性及相关技术策略。首先从网络优化的核心内容出发,包括速度、弱网络和安全,详细介绍了如何优化网络请求的每个步骤,以实现快速、稳定和安全的高质量网络。文章还介绍了网络库的作用,包括统一编程接口、全局网络控制和高性能,并对比了OkHttp、Chromium和Mars等网络库的内部实现。作者强调了网络库的重要性,指出不同网络库的实现差别很大,而Chromium网络库作为标准的网络库具有较高的质量。此外,还介绍了大网络平台的网络架构图,以及针对HTTPDNS、连接复用、压缩与加密等方面的优化策略。文章还涉及了QUIC和IPv6等前沿技术,强调了它们在未来网络优化中的重要性。总的来说,本文为移动开发者提供了关于移动网络优化的全面指南,帮助他们更好地应对复杂多变的移动网络环境。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(21)

  • 最新
  • 精选
  • A阿进 Andy
    okhttp是有长连接的吧?它有WebSocket是长连接吧?

    作者回复: Okhttp有keep alive,但是没有长连吧,这里的长连指的是有发心跳包的

    2019-03-16
    5
  • 蚂蚁内推+v
    张老师想请教两个问题: 1.真链接复用是怎么实现的,为什么在网络切换时候不用重连 2.newDns 是如何防重放

    作者回复: 1. udp 通过类似connection id,是它的特性 2. 有几种,一个我们可以拒绝非私有域名的请求。如果要支持所有的域名的请求,那就是业界比较常见的时间戳+nonce,网上资料比较多

    2019-02-09
    2
  • ww
    太棒了!现在公司就在用okhttp,可以尝试拓宽视野,看看MARS!

    作者回复: 可以学习一下,但是mars并不是一个完整的网络库

    2019-01-22
    2
  • QuincySx
    一直在想为什么大家不用 Ecc 证书,原来这已经是大厂的常规用法,学习了

    作者回复: 成本压力大啊

    2019-01-22
    1
  • breeze
    百度那个HTTPDNS方案太简单了,都是基于OKHttp的,OKhttp提供的DNS接口很容易实现httpdns,但是很多应用网络请求不止是用Okhttp,还有webview 的网络请求情况,不知道老师有没有好的针对全局的Httpdns方案,谢谢啦

    作者回复: 需要先统一网络库,对于webview我们也是实现了网络库的托管代理的。但是这建立到我们应用带了一个自己的内核的前提

    2019-06-28
    3
  • 坚持远方
    一直用的是okhttp,中间尝试过protobuf,但是因为使用起来比价复杂,后来放弃了,而对于加密这部分用的是https,对于作者提到的另外两个库基本上是闻所未闻,感觉对于作者的每一篇文章都能够拓宽我的视野
    2019-01-24
    18
  • Jerry银银
    不说技术,只说感受:读完了这篇,才知道自己所知是沧海一粟。高手是深厚的知识功底加丰富的实战经验,二者缺一不可
    2019-05-07
    5
  • 阿菜PRO-4
    温故而知新。 2023年再回头再看这文章发现有些也已成为业界常态了。
    2023-04-01归属地:浙江
    4
  • 微尘
    2022 再看也是收获满满,自己仅停留在okhttp,对select、poll 、epoll有了初步了解。
    2022-08-12归属地:北京
    2
  • 辉 哥
    眼界大开,mars一开源我就关注了,当时不知道mars作为网络请求库的优势,如今看了,受益匪浅
    2019-01-26
    2
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部