Android网络优化方案

作者: 奔跑吧李博 | 来源:发表于2023-02-08 12:43 被阅读0次
一、对于网络的优化,我们可以从以下五个维度来进行。
1.流量优化

精确获取网络流量的消耗量,解决整体均值掩盖单点异常流量的问题。

2.网络监控

建设全面的网络监控,因为粗粒度的监控不能够帮助我们发现和解决问题。

3.流量消耗

1、精准获取一段时间的流量消耗、网络类型、前后台。

2、用户流量消耗均值、异常率(消耗多、次数多)。

3、完整链路全监控(Request、Response)、主动上报。

4.网络请求质量

1、请求时长、业务成功率、失败率、TOP 失败接口,导致请求失败的原因通常有两种情况:
1)、弱信号:可以简单看成手机信号只有一两格的时候,这是不仅仅是信令(无线网络通信的都是一个个的信令)发出去困难,还可能导致不断切换网络、基站。App 只能在应用层做重试,因为弱信号一般都是一时的。
2)、拥塞网络:可以类比为堵车、排队的场景,数据包排队,信令也在排队。这时 App 不断重试,只会使得拥塞网络更为严重。我们只能让自己的非核心业务不要去排队,并让核心业务的数据量更少,协议来回更少。

2、用户体验

3、请求速度、成功率:网络正常时如何更好地利用带宽提升网络请求速度?

4、弱网:网络不稳定是如何最大程度上保证网络的连通性?

5、安全:如何防止被第三方劫持、窃听甚至篡改?

二、网络优化工具
1、Network Profiler

特点
1)、显示实时网络活动:发送、接收数据及连接数。
2)、需启动高级分析。
3)、仅支持 HttpURLConnection 与 OkHttp

选中 Connection View 特定的一条数据即可在右边看到该请求对应的网络数据。

三、精准获取流量消耗
1、如何判断 App 流量消耗偏高?

1)、绝对值看不出高低。
2)、对比竞品,相同 Case 对比流浪消耗。
3)、异常监控超过正常指标。

2、线上流量获取方案
  • NetworkStatsManager
    API 23 之后。
    特点
    1)、获取指定时间间隔内的流量信息。
    2)、获取不同网络类型下的消耗。
    NetUtils.getStats
    获取指定时间间隔的 蜂窝 + WIFI 流量总信息
四、常见使用网络的场景
  • 1、数据压缩
    POST 请求 Body 使用 GZip 压缩,同时服务端返回 Body 也使用 GZip 压缩。

  • 2、图片
    图片使用策略细化:让 服务端/CDN 云服务器 优先使用缩略图/WebP格式图片。
    根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比
    较多)。

  • 3、性能日志上报:批量 + 特定场景上报
    APM 相关、单点问题相关。例如埋点数据可以等到某一时机点(例如 开启了 WIFI、数据量过大必须上传一部分时)再上传。

  • 4、数据缓存
    服务端返回加上过期时间,避免每次重新获取。 节约流量且大幅提高数据访问速度,更好的用户体验。

  • 5、使用Retrofit和Okhttp实现网络缓存
    5.1.配置okhttp中的Cache

OkHttpClient okHttpClient = new OkHttpClient();
File cacheFile = new File(context.getCacheDir(), "[缓存目录]");
Cache cache = new Cache(cacheFile, 1024 * 1024 * 100); //100Mb
okHttpClient.setCache(cache);

5.2.配置请求头中的cache-control

@Headers("Cache-Control: public, max-age=3600)
@GET("merchants/{shopId}/icon")
Observable<ShopIconEntity> getShopIcon(@Path("shopId") long shopId);

6、合并网络请求、减少请求次数。

7、流量兜底能力
如果发现流量异常,我们可以通过后台服务器终止协议交互,以避免问题恶化。

参考:
https://www.jianshu.com/p/23a7d13bbe7f

相关文章

  • 探索 Android 网络优化方法

    前言 1. 网络优化概述 Android 网络优化方法主要讲的就是线下网络测试工具、线上网络监控方案、流量优化方案...

  • Android网络优化方案

    一、对于网络的优化,我们可以从以下五个维度来进行。 1.流量优化 精确获取网络流量的消耗量,解决整体均值掩盖单点异...

  • pre-network android网络预加载框架

    前言 现在android网络优化方案非常多,例如针对连接管理和缓存的优化方案,例如:okhttp,针对数据传输数据...

  • 收集_Android源码文章

    一、Bitmap: Android bitmap压缩优化方案Android性能优化系列之Bitmap图片优化 二、...

  • Unity与Android交互方案

    Unity与Android交互方案优化版Unity与Android交互方案优化版续:使用自定义Activity【U...

  • Android性能优化(下)

    Android性能优化 内存泄漏和性能优化方式Android性能优化(上)数据库优化和网络优化Android性能优...

  • 想要深入学习Android性能优化?看完这篇直接让你一步到位

    Android性能优化 Android中的性能优化基本上可以分为以下几个方面: ● 布局优化 ● 网络优化 ● 内...

  • 2022-01-25

    蛙笑网络请求优化方案 优化目的 解耦网络请求,解决嵌套地狱,减少内存泄漏 方案对比 原始请求方式: 改造完成的请求...

  • 性能优化 - 收藏集 - 掘金

    Android 性能优化 - 过度绘制解决方案 - Android - 掘金转载请注明出处:http://blog...

  • 开篇

    目前关注的领域 Android 网络优化长连接短连接 Android Push 优化进程保活消息展示 Androi...

网友评论

    本文标题:Android网络优化方案

    本文链接:https://www.haomeiwen.com/subject/iavxyltx.html