Android性能优化—网络优化

深入探索 Android 网络优化(二、网络优化基础篇,android编程基础教程 3、BDP(Bandwidth-delay product,带宽延迟积) 接收窗口(rwnd)会随每次 ACK 一起发送,而 拥塞窗口(cwnd)则由发送端根据拥塞控制和预防算法动态调整。 无论发送端发送的数据还是接收端接收的数据超过了未确认的最大数据量,都必须停 下来等待另一方 ACK 确认某些分组才能继续。 而 BDP(Bandwidth-delay product,带宽延迟积) 就是 任意时刻处于在途未确认状态的最大数据量。 BDP = 数据链路的容量 * 其端到端延迟 在高速连接的客户端与服务器之间 阅读详情

网络优化是一个比较大的命题,今天聊一聊在我们业务使用中必要的优化点。

  • 网络请求的划分

网络优化按照业务区分可以分为日志收集、业务请求;按请求的优先级划分可以分为高优先级、中优先级、低优先级;按请求的重要性又可以划分为非常重要、重要、一般、可抛弃;按照请求频次又可以划分为高频次、一般频次、低频词。例如我们的日志收集就属于低优先级、高频次并且可抛弃的网络场景,对于这种网络场景,我们可以采取独立的线程池且不需要任何网络重试操作方案;我们可以针对网络应用场景的优先级、重要性、频次等来决定该场景应该采用怎么样的网络优化方案。

图片

我们在程序设计的过程中,可以通过网络请求分类来合理设计网络请求各种组合策略。

  1. 对于高频次的网络请求采用的独立线程池,以防止高频次的网络请求阻塞其他网络请求。
  2. 对于耗时严重的网络请求(返回的数据量较大)采用独立请求方式。
  3. 建立良好的重试机制,按照重要性来区分是否需要重试或者重试的次数。
  4. 同一线程池内网络请求按照优先级排列好,尽量保证重要的业务优先出栈
  • 传输数据压缩

图片

数据压缩是解决传输过程中数据大的问题,有效减少网络带宽、减少网络失败率,以下是压缩算法:

图片

压缩算法种类繁多,需要针对不同的场合选择不同的算法,没有最好,只有最适合的算法。

平时我们是通过设置http的Accept-Encoding参数为gzip,gzip压缩一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。

  • 合并请求

通过技术手段将多个网络请求合并成一个请求,减少网络请求的频次,如下图:

图片

例如设置一个接口,里面设置一个请求参数,该参数为一个数组,值为合并请求的各个接口名。

  • 使用HttpDns

传统 DNS 存在的问题

当我们发出请求解析 DNS 的时候,首先,会先连接到运营商本地的 DNS 服务器,由这个服务器帮我们去整棵 DNS 树上进行解析,然后将解析的结果返回给客户端,此方式容易产生域名劫持,解析慢、更新不及时。因为缓存、转发、NAT问题导致客户端误会自己所在的位置和运营商,从而影响流量的调度。

HttpDns 概念

HttpDns不走传统的 DNS 解析,而是自己搭建基于 HTTP 协议的 DNS 服务器集群,分布在多个地点和多个运营商。当客户端需要 DNS 解析的时候,直接通过 HTTP 协议进行请求这个服务器集群,得到就近的地址。

目前各大厂云服务都有对应的HttpDns服务,只需要集成即可,HttpDns通过客户端 SDK 和服务端,通过 HTTP 直接调用解析 DNS 的方式,实现了智能的调度,解决传统DNS存在的问题。

  • 其他

我们可以通过设置过期时间(Expires)或Cache-Control来保证数据的有效期(数据缓存)。

【Android】性能优化之内存、网络、布局、卡顿、安装包、启动速度优化 欢迎来到 Android 开发老生常谈的性能优化篇,本文将性能优化划分为内存、网络、电量、布局、卡顿、安装包、启动速度七块,从这七块优化出发,阐述优化的 Application 的方式。 阅读详情

相关推荐

Android性能优化来龙去脉总结,关于网络优化你必须要知道的重点

b、大量对象短时间被创建,又在短时间内“需要”被释 放,注意这里的需要,其实是不得不,为什么,同样是因为“舞台空间不够了”,举个例子,在onDraw中new 对象,因为onDraw大约16ms会执行一次(wait,你能否确定一下,什么是大约16ms,对不起,不能,掉帧了就不是,哪怕掉那么一点点)。脑补一下,每秒中创建大约60个对象,嗯,骚年,你以为Young Generation是白菜么,想拿多少就拿多少,对不起,这里是限量的,这里用完了,在来申请,我就得去回收一些回来,我回收总得耗时间吧,耗时间,好吧,o

m0_66264324的博客 904

Android网络优化

网络优化的方向主要是流量优化质量优化线下测试以及线上监控方案结合 OkHttp 获取网络请求质量数据,OkHttp 给我们留了一个事件监听器 EventListener 回调,我们可以自己实现这个监听器,监听每一次的请求。自定义 GlideModue 是为了监控图片加载的过程,下面我们来看下怎么监控 Glide 加载图片过程的耗时和相关数据。

ruanyandong的博客 2984

网络通信与性能优化:Android开发中的实用技巧

选择合适的网络库、使用异步任务或线程、数据压缩和加密、图片加载优化、网络请求重试和超时处理以及使用缓存等技巧都能够提升应用的性能和用户体验。本文将介绍一些在Android开发中进行网络编程和常见功能优化的实用技巧,并提供相应的源代码示例。为了提高请求的成功率,可以实现请求的重试机制,例如在请求失败时进行自动重试。利用缓存可以减少对服务器的请求,提高数据加载速度和减轻服务器的负载。可以使用HTTP缓存或内存缓存技术,根据数据的更新频率和大小进行合理的缓存策略。在应用中加载大量的图片可能会导致性能问题。

CodeHeroicX的博客 164

Android应用如何进行网络优化

使用 Android 的 ConnectivityManager 等 API 来监测网络连接状态的变化,包括网络类型(如 Wi-Fi、移动数据)和连接的可用性。对于耗时的网络请求,使用异步方式进行,避免阻塞主线程,提高应用的响应性。下次请求相同资源时,如果缓存有效,可以直接使用缓存数据,避免再次向服务器请求。如果有多个小数据需要传输,可以考虑将它们合并成一个较大的请求进行批量传输,减少网络请求次数。对于长时间无数据传输的连接,可以定期发送心跳包来保持连接的活跃性,防止被服务器断开。

challenge51all的专栏 1121

[SDIO] SD card 初始化及常用命令解析(附波形,uboot代码)

目录 初始化 1.cmd 0 2.cmd8 3.cmd55 4.acmd41 5.cmd2 6.cmd3 7.cmd9 8.cmd13 9.cmd7 10.ACMD51 11.CMD6 12.CMD16 13.CMD17 14.CMD18 15.CMD12 tuning CMD19 DW_SDHCI的tuning流程 初始化 1.cmd 0 /* Reset the Card */ err = mmc_go_idle(mmc...

Lenz_s_law的开发记录本 2万+

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 309

Android优化篇之网络优化

单 工通信:数据只能一方发送到另一方。(例:UDP协议,Android广播) 2. 半双工通信:数据可以从A发送到B,也可以从B发到A,但同一时刻,只能有一个方向的数据传输。(例:Http协议,向服务器发起请求,服务器返回响应) 3. 全双工通信:任意时刻,都会存在A到B和B到A的双向传输。(例:Socket协议,长连接通道,IM聊天,视频通话)

嘴巴吃糖了 1145

从零开始:如何在STM32上搭建QP框架实现事件驱动开发(附完整代码)

本文详细介绍了如何在STM32嵌入式平台上从零开始搭建QP框架,实现事件驱动开发。通过对比传统前后台系统与RTOS的局限,深入剖析了QP框架基于活动对象和层次式状态机的核心优势,并提供了完整的环境配置、代码移植及一个智能灯光控制器的实战案例,帮助开发者构建清晰、可维护的复杂嵌入式应用。

weixin_29200741的博客 489

Android性能优化之网络优化

体积减少 50-70%,解析速度快 2-5 倍。:单连接并行多个请求,减少握手开销。:高丢包网络(如地铁、电梯)

JMY_2016的博客 1304

FLoRA: 基于异构低秩适应的联邦微调大语言模型

大语言模型(LLMs)的快速发展推动了人工智能的进步,预训练的LLMs可以通过微调适应各种下游任务。联邦学习(FL)通过利用客户端的本地数据进行原位计算,进一步增强了隐私保护的微调,消除了数据移动的需求。然而,考虑到LLMs的巨大参数量,微调LLMs对于资源受限且异构的FL客户端来说是一个挑战。之前的方法采用了低秩适应(LoRA)进行高效的联邦微调,但在LoRA适配器上使用了传统的FL聚合策略。这些方法导致了数学上不准确的聚合噪声,降低了微调效果,并且未能解决异构LoRA的问题。

tiger00O的博客 2067

UE5入门第二周总结:基于蓝图的国际象棋的实现

在C++的学习中,这是一个入门级别的项目。我们的目标是灵活运用蓝图的特性和强大的可视化功能,做出这一入门级项目的同时,思考如何优化并改进算法,并尽可能的用面向对象的方法实现,用蓝图中的继承和多态简化编码过程。

YoungeYang的博客 1262

Android安卓网络请求性能优化

1.服务器合理部署       不同区域,部署服务器。 2.服务端提供不同分辨率的图片  上传自己的手机分辨率,或者需要的尺寸,返回对应的图片。 3.合理的接口设计  合理的接口设计,减少不必要的,重复的,无用的请求    1.请求接口数据缓存  自定义缓存机制,或者使用okhttp类似框架。比如一定时间内请求,直接请求本地。 2.请求优先级设置  比如进到APP,有多个请求,

icewst的专栏 2497

由浅入深的详细解读汽车PDU与BDU

本文详细解读新能源汽车的PDU高压配电单元和BDU电池包断路单元,涉及电气件参数设计、选型、结构设计、电气安全、散热设计、继电器控制与诊断,提供汽车电子知识和技术解析。

让你爱上电路设计 1万+

Android性能优化整理——布局、内存、网络优化等

Android性能优化 由于手机硬件的限制,内存和CPU都无法像pc一样具有超大的内存,Android手机上,过多的使用内存,会容易导致oom,过多的使用CPU资源,会导致手机卡顿,甚至导致anr。主要是从一下几部分进行优化: 布局优化,绘制优化,内存泄漏优化,响应速度优化,listview优化,bitmap优化,线程优化 布局优化 工具 hierarchyviewer,解决方式: 1、删除无用的空间和层级。 2、选择性能较低的viewgroup,如Relativelayout,如果可以选择Re

QLHepburn的博客 352

【毕业设计】基于雷达与深度学习的摔倒检测——雷达数据集处理

雷达原始数据是时域非平稳信号,快速傅里叶变换(Fast Fourier Transformation, FFT)不能很好地提取微多普勒效应的模式特征。因此短时傅里叶变换(Short Time Fourier Transformation, STFT)被应用于雷达信号的时频谱分析。本文主要介绍雷达数据集的预处理过程,包括时频谱图的中值滤波与 SVD 分解。

洋洋Young的博客 1808

【具身智能】感知 × 决策 × 执行:一个智能体的认知闭环怎么搭?

构建一个真正能在现实世界中运作的具身智能体,并不是简单地拼接“视觉 + 控制器 + 动作模块”就能完成的,它必须是一个**认知闭环结构**:能感知环境、理解状态、制定策略、执行动作,并从结果中学习反馈。 本讲将深入剖析具身智能的三大核心支柱:**感知系统、决策系统、执行系统**,并解析它们如何协同构建出一个“能观察、能思考、能行动”的智能体。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3267

安卓插件化开发!美团点评APP在移动网络性能优化的实践,Android篇

写在前面 1月初失业,找了近2个多月的工作了,还没找到心仪的工作,感觉心好慌,不知道该怎么办了?找不到工作的时候压力很大,有人说自信会很受打击,还有人说会很绝望,是人生的低谷……尽管很多时候我们自己知道,我不是找不到工作,只是找不到理想中的好工作。但这也不能改变你的空白期正在一天一天变长,不妥协的那份坚定正在一天一天动摇的事实。 朋友推荐给我这份文档,狂刷五遍之后,最近刚刚获得字节跳动等多家公司的offer,今天将这份文档分享给大家,希望正在找工作或准备找工作的朋友都可以获得自己心仪公司的offer。 第一

381

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android 性能优化之网络优化

前言 随着移动网络的不断升级,客户端的网络传输由3G进化到Wifi、4G,且Wifi场景越来越多。虽然网络环境在变好,但也对网络的应用提出了更高的要求,会发现很多大厂都十分重视网络指标,如果技术人员不加以控制,在弱网、体验、包括服务器带宽、流浪方面都会造成不同程度的损失。 网络指标 流量 网络第一个影响的app指标当然是流量,在手机设置界面可以清楚查看到每个 app 耗费的流量,极端情况下会造成用...

王永迪的专栏 4724

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

安卓性能优化-网络优化建议

移动设备因为其独特的网络环境,应用可以获取的网络速度、网络质量、网络带宽都有很大的限制,如何在这种限制环境下表现出优秀的用户体验,就涉及到应用的网络环境优化了,下面仅从几个常见的方面给出几点建议。

lotty_wh的博客 466

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

面试必备攻略!爆火的《超全Android App性能优化 &网络优化知识技能手册》!

01 性能优化的重要性 Android和iOS都用过的朋友应该体验比较明显:相比于iOS,Android用的时间越长就会越卡。 在这个网络都追求5G的时代,“卡”这个体验显然成为了一个极其拉低印象分的问题。 所以,在 Android开发中,性能优化策略十分重要,他决定了应用程序的开发质量,包括可用性、流畅性、稳定性等,是提高用户留存率的关键。 所以,不只是阿里,还有腾讯、字节跳动、爱奇艺等,都非常重视这个问题,在面试中,如果这个方向表现优异,你将会很值钱。 如果你已经..

嘴巴吃糖了 686

Android性能优化——网络优化

Android性能优化之网络优化

weixin_42277946的博客 528
上一篇: 业务如何应对App隐私政策带来的风险
下一篇: Android性能页优化-启动页优化
码农驿站
博客等级 码龄10年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值