前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络优化

网络优化

作者头像
Yif
发布2020-04-26 09:26:01
1K0
发布2020-04-26 09:26:01
举报
文章被收录于专栏:Android 进阶Android 进阶

缓存

说道网络优化,不得不谈一谈缓存,各大网络开源框架中普遍使用到了缓存。

数据缓存

如何进行数据缓存,我们可以在返回上加上过期时间,避免重新获取。这种做法节约了流量,且大幅提高数据访问的速度,增强了用户体验。在OKHTTPVolley等一些网络框架中都有很好的实践。 下面进行OKHTTP,在无网络的情况下使用cache进行缓存

增量数据更新

除了使用缓存,我们也可以采用增量数据更新的方式 比如: 1. 加上版本,当数据有明显变化的时候进行传输变化的数据,那些没有变化的就不进行传输,避免消耗网络流量 2. 或者在配置信息,省市,区这些地址信息的时候进行更新

数据压缩

数据压缩在网络优化中也进行普遍的使用 如何进行数据压缩呢,通常在post 请求体中加入gzip等压缩字段。浏览器在发送请求时都会带着Accept-Encoding头字段,里面是浏览器支持的压缩格式列表,例如 gzip、deflate、br 等,这样服务器就可以从中选择一种压缩算法,放进Content-Encoding响应头里,再把原数据压缩后发给浏览器。 一些媒体资源传输的时候也可以进行压缩,比如图片上传前进行压缩,我们可以通过luban库将本地的图片进行压缩,压缩后图片质量不变,加载压缩后的图片,再进行上传。 implementation 'top.zibin:Luban:1.1.8'

以下代码是为了演示Luban这个库对图片压缩对流量方面的影响 Luban.with(holder.imageView.getContext()) //加载需要压缩图片的位置 .load(Environment.getExternalStorageDirectory()+"/Android/1.jpg") //将压缩为完的图片进行保存的位置,压缩完后的图片质量不变 .setTargetDir(Environment.getExternalStorageDirectory()+"/Android") .launch();

图片除了压缩,还可以优先加载缩略图,使用webp格式的图片减少图片的大小

DNS 优化

由于进行网络请求,可能会遇到DNS被劫持和DNS解析缓慢,造成网络请求过于耗时。 这里就可以采用HTTPDNS来绕过运营商服务器解析过程,从而降低平均访问时长,提高连接率,进而提高网络访问的速度。 这里的HTTPDNS 不是使用传统的DNS协议向服务器的53端口发送请求,而是使用Http协议向服务器的80端口发送请求。

监控网络请求的质量

可以进行网络请求质量的监控,比如接口请求耗时,成功率或者错误码,图片的每一步加载的耗时

客户端进行请求耗时监控

public class OkHttpEvent { public long dnsStartTime; public long dnsEndTime; public long responseBodySize; public boolean apiSuccess; public String errorReason; }

Fresco框架 监控图片每一步加载耗时

facebook 的图片加载框架中通过继承RequestListener监控图片请求加载流程,拿到图片加载的每一步 implementation 'com.facebook.fresco:fresco:1.11.0'

其他方案

除了以上常用的方案,我们也可以为进行进一步的网络优化,采取以下方案: 1. 采取CDN 加速,提高服务器带宽,动静资源分离(更新后清理缓存) 2. 根据时机不同,以及请求的频率减少传输量,降低服务器压力,增加网络传输速度

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年4月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 缓存
    • 数据缓存
    • 增量数据更新
    • 数据压缩
    • DNS 优化
    • 监控网络请求的质量
      • 客户端进行请求耗时监控
        • Fresco框架 监控图片每一步加载耗时
        • 其他方案
        相关产品与服务
        文件存储
        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档