三丶获取数据优化
- 连接复用:节省连接时间,如开启keep-alive 。Android中HttpUrlConnection默认是开启的 。
- 请求合并:可以将多个请求合并为一个进行请求 。
- 减小请求数据,并压缩:对于post请求,Body可以做Gzip压缩,如日志 。
- 精简数据格式:对于后台返回的数据,尽量使用Json来代替XML 。
- 数据的增量更新
- 例如, 注册登录. 正常会有两个API, 注册和登录, 但是设计API时我们应该给注册接口包含一个隐式的登录. 来避免App在注册后还得请求一次登录接口(有可能失败, 从而导致业务流程失败)
- 再例如, 上文提到的获取repo详情, 实际上请求了4个接口, 请求了repo的信息, forks列表, contributors列表, readme, 这是因为github提供的接口是尽量单一职责的. 然而在我们的实际开发中, 我们的Server除了提供这些单一职责的小接口外, 最好还能组合一个满足客户端业务需求的repo详情接口出来 。
使用Gzip来压缩request和response, 减少传输数据量, 从而减少流量消耗 。
考虑使用Protocol Buffer代替JSON
从前我们传输数据使用XML, 后来使用JSON代替了XML, 很大程度上也是为了可读性和减少数据量(当然还有映射成POJO的方便程度) 。
Protocol Buffer是google推出的一种数据交换格式 。
如果我们的接口每次传输的数据量很大的话, 可以考虑下protobuf, 会比JSON数据量小很多 。当然相比来说, JSON也有其优势, 可读性更高 。
3.图片的Size
上面Network Monitor中看到的22s到27s之间的有多次请求, 且数据量还很大. 就是在获取图片资源 。图片相对于接口请求来说, 数据量要大得多. 故而也是我们需要优化的一个点 。
我们可以在获取图片时告知服务器需要的图片的宽高, 以便服务器给出合适的图片, 避免浪费 。现在很多公司的图片资源都是使用第三方的云存储服务的(七牛, 阿里云存储之类的)
以七牛为例, 可以在请求图片的url中添加诸如质量, 格式, width, height等path来获取合适的图片资源:

文章插图
五丶弱网优化
推荐阅读
- 网络基本功:http报文及TCP拥塞控制机制
- 笔记本配置两个网络同时上外网和内网
- 超大文件传输 | 网络直连与雷电网桥
- 同样是写作赚钱,写长篇网络小说和写自媒体文章哪个更容易变现?
- 在用 Android 软件摸鱼前,让我们先用 Windows 11 虚拟桌面提高生产力
- 中医治好了我的咽炎,我的鼻炎反反复复
- NaaS 网络即服务是未来的趋势
- 网络地址+端口转换,解决公网地址不足的方案
- 华为|关于6G华为发话了!2030年通信网络将有这六大特点
- 摩托罗拉|骁龙870千元神机升级!摩托罗拉edge s pro喜提Android 12
