15 | 网络优化(上):移动开发工程师必备的网络优化知识
张绍文
该思维导图由 AI 生成,仅供参考
专栏前面我们已经学习过文件 I/O 和存储优化,相信你已经掌握了文件 I/O 和存储的性能分析以及优化思路。今天我们就再接再厉,继续学习系统中另外一种常见的 I/O——网络 I/O。
我在写今天的文章时,回想了一下大学期间学的那本几百页厚的《计算机网络》,当时学得也是云里雾里,网络的确涉及了方方面面太多的知识。那我们作为移动开发者来说,都需要掌握哪些必备的网络知识呢?文件 I/O 跟网络 I/O 又有哪些差异呢?
今天我们不谈“经典巨著”,一起来解决移动开发工程师面对的网络问题。
网络基础知识
现在已经很难找到一款完全不需要网络的应用,即使是单机应用,也会存在数据上报、广告等各种各样的网络请求。既然网络已经无处不在,我们必须要掌握哪些基础知识呢?
1. 无线网络
在过去十年,移动互联网的高速增长离不开无线网络的普及。无线网络多种多样,而且各有各的特点,并且适合使用的场景也不同。
下图是 iPhone XS 支持的无线网络类型,你可以看到 WiFi、蜂窝网络、蓝牙、NFC 这些都是我们日常经常使用的无线网络类型。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了移动开发中的网络基础知识和网络I/O,包括无线网络的发展、网络I/O模型和数据处理流程。作者介绍了延迟、带宽、吞吐量、连接数和错误等网络性能指标,并提到了网络优化的重要性。此外,文章还涉及了网络性能评估和性能测量的方法,以及一些实用的网络性能分析工具。最后,作者强调了对网络技术的持续学习和思考的重要性,并提供了相关书籍推荐和课后作业。整体而言,本文系统性地介绍了移动开发工程师必备的网络优化知识,对于想要深入了解网络优化的读者来说,是一篇值得阅读的文章。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》,新⼈⾸单¥59
《Android 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(16)
- 最新
- 精选
- ming张老师我遇到一个问题就是Mars做长连接怎么能用jobservice兼容Android8.0以上版本,没有相应思路希望你能给我一些帮助谢谢
作者回复: 这个简单来说就是如何保活,在耗电的章节会说到。 但是8.0之后就已经非常难了,微信其实主要靠的是厂商白名单
2019-01-17213 - snail24对课后作用的思考: 他们是如何实现网络不稳定的探测的? 所谓不稳定,我的理解其实就是弱网络的判断,那么什么是弱网络?一般情况下,低于2G 网速,上行20kbps /下行 50kbps 就可以认为是弱网;当然,这个范围是见仁见智的,也可以更大一些; 此时分为wifi连接上,但可用与不可用两种状态; 不可用时的一种典型场景就是: 连上需要登录认证后使用的公共wfi ; 所以问题就变成2个方面的判定: (1) 判定网络是否可用: 这个最简单有效的办法就是向指定地址发起HTTP请求,服务端返回204响应码即可;这个也是Google 在 6.0 以上流量监控模块的实现方案;其他同学有提到ping 方案,呵呵,ping 一般是内部ip开放探测网络是否畅通的方案,但企业ip 一般是对外禁止ping的,因为会有安全攻击;所以ping 其实是行不通的; (2) 判断网络是否稳定: 稳定的临界判断可以根据网络速度来判断,厂商一般会有流量统计模块,自然可以统计当下的wifi 传输速度,只要低于某个速度,甚至在某个时间内经常断开又连上,就可以判断为不稳定网络了。 以上拙见,欢迎绍文老师以及其他同学指正O(∩_∩)O~
作者回复: 这个不太好实现的,对于手机厂商来说,可以拿到更多底层的参数,答案在下一章有说
2019-01-2038 - 像风5G延迟的数据从哪里来的?似乎不严谨啊。10ms的延迟是指多远的传输距离?光速绕地球一圈尚且要大约140毫秒,如果传输距离是地球的周长,怎么可能只有10ms?而且因为5G的频率较高,在不良导体中能量损耗严重,不能传输过远的距离,需要经过许多个基站转发,基站处理也需要时间啊。总觉得这个10ms像是上市公司为了热炒5G概念在“短距离内的两个端点端对端传输的延迟时间”...
作者回复: 我是参考AT&T给出的数据
2019-03-2024 - xushengxing一开始比较朴素的想法:通过请求已知的,稳定的服务器,去请求应用的服务器。在这两个环节中,判定是网络问题,还是应用服务的问题。 googl一下,发现WifiManager也可以获取连接速度,信号强度这些指标。
作者回复: 对于厂商可以拿到更加底层的参数
2019-01-181 - 荆明关于课后作业,如何侦测网络,是在哪一章回复的?后面几章好像没看到回复这个问题
作者回复: Link turbol?后面正文里面说了答案了
2019-02-26 - Jack如何实现侦测,如何区分是应用后台服务器出问题还是 WiFi本身有问题呢 是不是可以尝试百度等比较稳定的服务,以此来判断是后台出了问题,还是wifi传输出现拥堵
作者回复: 对于手机厂商来说,这样不是好的方式。下一章会有答案
2019-01-29 - 董尚斌理论上后台挂掉的话,请求是5xx错误码。 通过http的响应码就可以区分。
作者回复: 如果有返回码,已经代表是可以联通了。
2019-01-21 - 欧哩給做App的流量使用统计有什么方法呢?
作者回复: 后面会讲到
2019-01-17 - ZYW我说个最简单的思路,连上WIFI.ping 一个公有ip,如果通过就说明可以,如果不行就说明WIFI网络不可达,这期间还可以做 丢包获取看网络的丢包率。
作者回复: 公网ip也无法确定有没有问题,下一章会有答案,其实是不需要的
2019-01-17 - 凡式galaxy怎么区分是wifi问题还是应用后台问题?
作者回复: 在后面一章会有答案哈
2019-01-17
收起评论