您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > APP

互联网时代,App与Server的交互中不可缺少的优化项

时间:2022-08-25 12:31:54  来源:  作者:愿天堂没有代码

前言

互联网时代, App作为于用户交互的端, 可以说实际上是一个界面, 产品的业务, 服务都是由Server提供的. 而App与Server的交互依赖于网络, 故而网络优化, 也是我们的App优化中不可缺少的一个优化项

1、网络连接对用户的影响

App的网络连接对于用户来说, 影响很多, 且多数情况下都很直观, 直接影响用户对这个App的使用体验. 其中较为重要的几点:

  • 流量 App的流量消耗对用户来说是比较敏感的, 毕竟流量是花钱的嘛. 现在大部分人的手机上都有安装流量监控的工具App, 用来监控App的流量使用. 如果我们的App这方面没有控制好, 会给用户不好的使用体验.
  • 电量 电量相对于用户来说, 没有那么明显. 一般用户可能不会太注意. 但是如前文电量优化中说的那样, 网络连接(radio)是对电量影响很大的一个因素. 所以我们也要加以注意.
  • 用户等待 也就是用户体验, 良好的用户体验, 才是我们留住用户的第一步. 如果App请求等待时间长, 会给用户网络卡, 应用反应慢的感觉, 如果有对比, 有替代品, 我们的App很可能就会被用户无情抛弃.

2、分析网络连接的工具

2.1.NETwork Monitor

Android Studio内置的Monitor工具中就有一个Network Monitor:

 

其中:

  • Rx — R(ecive) 表示下行流量, 即下载接收.
  • Tx — T(ransmit) 表示上行流量, 即上传发送.

2.2 网络代理工具

一般来说, 网络代理工具有两个作用:

  1. 截获网络请求响应包, 分析网络请求
  2. 设置代理网络, 移动App开发中一般用来做不同网络环境的测试, 例如wifi/4G/3G/弱网等.

代理工具很多, 诸如Wireshark, Fiddler, Charles等, 在此不一一细说了

3, 哪些方面取优化网络连接

简单来说, 两个方面:

减少Radio活跃时间

1. 也就是减少网络数据获取的频次.

2. 这就减少了radio的电量消耗, 控制电量使用.

减少获取数据包的大小

1. 可以减少流量消耗

2. 也可以让每次请求更快, 在网络情况不好的情况下也有良好表现, 提升用户体验.

那么, 具体应该从哪些方面着手呢?

3.1 接口设计

API设计

App与Server之间的API设计要考虑网络请求的频次, 资源的状态等. 以便App可以以较少的请求来完成业务需求和界面的展示.

例如, 注册登录. 正常会有两个API, 注册和登录, 但是设计API时我们应该给注册接口包含一个隐式的登录. 来避免App在注册后还得请求一次登录接口(有可能失败, 从而导致业务流程失败).

再例如, 上文提到的获取repo详情, 实际上请求了4个接口, 请求了repo的信息, forks列表, contributors列表, readme, 这是因为Github提供的接口是尽量单一职责的. 然而在我们的实际开发中, 我们的Server除了提供这些单一职责的小接口外, 最好还能组合一个满足客户端业务需求的repo详情接口出来.

Gzip压缩

使用Gzip来压缩request和response, 减少传输数据量, 从而减少流量消耗.

考虑使用Protocol Buffer代替JSON

从前我们传输数据使用XML, 后来使用JSON代替了XML, 很大程度上也是为了可读性和减少数据量(当然还有映射成POJO的方便程度).

Protocol Buffer是google推出的一种数据交换格式.

如果我们的接口每次传输的数据量很大的话, 可以考虑下protobuf, 会比JSON数据量小很多.

当然相比来说, JSON也有其优势, 可读性更高.

图片的Size

上面Network Monitor中看到的22s到27s之间的有多次请求, 且数据量还很大. 就是在获取图片资源.

图片相对于接口请求来说, 数据量要大得多. 故而也是我们需要优化的一个点.

我们可以在获取图片时告知服务器需要的图片的宽高, 以便服务器给出合适的图片, 避免浪费.

我们现在很多公司的图片资源都是使用第三方的云存储服务的(七牛, 阿里云存储之类的).

以七牛为例, 可以在请求图片的url中添加诸如质量, 格式, width, height等path来获取合适的图片资源:

<pre spellcheck="false" class="md-fences md-end-block ty-contAIn-cm modeLoaded" lang="JAVA" cid="n57" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">imageView2/<mode>/w/<LongEdge>
 /h/<ShortEdge>
 /format/<Format>
 /interlace/<Interlace>
 /q/<Quality>
 /ignore-error/<ignoreError>
</pre>

3.2 网络缓存

适当的缓存, 既可以让我们的应用看起来更快, 也能避免一些不必要的流量消耗.

3.3 打包网络请求

当接口设计不能满足我们的业务需求时. 例如可能一个界面需要请求多个接口, 或是网络良好, 处于Wifi状态下时我们想获取更多的数据等.

这时就可以打包一些网络请求, 例如请求列表的同时, 获取Header点击率较高的的item项的详情数据.

可以通过一些统计数据来帮助我们定位用户接下来的操作是高概率的, 提前获取这部分的数据.

3.4 监听相关状态

通过监听设备的状态:

  • 休眠状态
  • 充电状态
  • 网络状态

结合JobScheduler来根据实际情况做网络请求. 比方说Splash闪屏广告图片, 我们可以在连接到Wifi时下载缓存到本地; 新闻类的App可以在充电, Wifi状态下做离线缓存.

3.5 弱网测试&优化

除了正常的网络优化, 我们还需考虑到弱网情况下, App的表现.

3.5.1 弱网测试

有几种方式来模拟弱网进行测试.

Android Emulator

创建和启动Android模拟器可以设置网络速度和延迟:

创建时:

 

启动时, 使用emulator命令:

使用网络代理工具

Charles为例:

保持手机和PC处于同一个局域网, 在手机端wifi设置高级设置中设置代理方式为手动, 代理ip填写PC端ip地址, 端口号默认8888.

 

其他模拟弱网方式

如果你恰好也是IOS的开发者, Apple提供了Network Link Conditioner, 非常好用.

可以模拟的网络情况与上述类似:

 

如果你使用linux环境开发, 还可以试下facebook出的ATC.

3.5.2 弱网优化

利用上述工具模拟弱网, 在弱网情况下体验我们的App. 一般来说, 网络延迟在60ms内, 是OK的, 超过200ms就比较糟糕了. 我们需要做的是在比较糟糕的网络环境下还能给用户较好的体验.

弱网优化, 本质上是在弱网的情况下能让用户流畅的使用我们的App. 我们要做的就是结合上述的优化项:

  • 压缩/减少数据传输量
  • 利用缓存减少网络传输
  • 针对弱网(移动网络), 不自动加载图片
  • 界面先反馈, 请求延迟提交

例如, 用户点赞操作, 可以直接给出界面的点赞成功的反馈, 使用JobScheduler在网络情况较好的时候打包请求



Tags:App   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
TikTok确认正开发新App:有点像小红书 要抢扎克伯格生意
财联社4月10日讯(编辑 史正丞)种种迹象显示,凭借短视频应用火遍全球的TikTok,也开始考虑开拓新的业务线了。近几日不断有外国网友在社交媒体上分享称,收到TikTok应用的弹窗称,一款...【详细内容】
2024-04-10  Search: App  点击:(1)  评论:(0)  加入收藏
苹果将允许游戏机模拟器登陆App Store
据The Verge报道,在欧盟开出巨额罚单和新的监管要求后,苹果于前日更新了App Store指南,显示其将首次允许游戏机模拟器登陆iOS设备。游戏机模拟器类软件一直以来都被苹果禁止,无...【详细内容】
2024-04-07  Search: App  点击:(13)  评论:(0)  加入收藏
理想汽车上线“潮汐 App”:车内提供小憩模式、冥想模式
IT之家 4 月 6 日消息,理想汽车日前宣布,潮汐 App 现已上线理想 MEGA、理想 L 系列车型,号称为车主打造“专属休憩空间”。IT之家附官方介绍:小憩模式:潮汐独特的小憩助手,专为车...【详细内容】
2024-04-07  Search: App  点击:(6)  评论:(0)  加入收藏
租赁车如何使用12123 APP处理违法 官方指南来了
快科技4月2日消息,对于租车的用户来说,租赁期间出现交通违章的话,需要携带租赁车辆行驶证前往当地交管部门处理违章,十分不便。为此,公安部于去年9月份推行了“租赁车交通违法处...【详细内容】
2024-04-03  Search: App  点击:(7)  评论:(0)  加入收藏
记者调查App“免费试用”“低价享用”乱象:本想免费试用,结果被扣一年会员费?
“因为想用一个滤镜,下载了一款修图App软件,软件页面显示&lsquo;七天免费试用,到期自动续费98元,可随时取消&rsquo;。我以为开通7天内免费,其间取消就不收费了,结果被直接扣了一年...【详细内容】
2024-04-01  Search: App  点击:(7)  评论:(0)  加入收藏
“专业人员帮忙多退税”?别信!专家拆解仿冒个税App诈骗套路
2023年度个人所得税年度汇算办理时间为2024年3月1日至6月30日。“你的个人所得税申报了吗?”“退了多少税?”成为近期热门话题。工业和信息化部反诈专班发现,一些仿冒的“个人...【详细内容】
2024-03-31  Search: App  点击:(8)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  Search: App  点击:(3)  评论:(0)  加入收藏
手把手教你如何修改12123APP的联系方式
输入新手机号&rarr;发送验证码并输入&rarr;确认信息点击确定。注意啦!如果密码忘记无法正常登录需要进行以下操作找回密码手机号正常使用密码忘记的情况如果手机号正常使用,交...【详细内容】
2024-03-30  Search: App  点击:(10)  评论:(0)  加入收藏
抖音电商推出独立APP“抖音商城版”,主攻货架场景
图片来源:视觉中国近日,抖音电商近日推出了独立的“抖音商城版”APP。对此,抖音电商相关负责人向蓝鲸财经表示:“我们观察到部分用户在主动购物方面存在着旺盛的需求,为了更好地...【详细内容】
2024-03-26  Search: App  点击:(10)  评论:(0)  加入收藏
抖音电商首次走出抖音,上线抖音商城版APP
3月26日消息,近日,字节上线了一款名为“抖音商城版”的APP,主打“超值好物省心选”,意在与淘宝、京东、拼多多等竞争。这也是抖音电商首次在抖音APP之外,推出综合性独立电商平台...【详细内容】
2024-03-26  Search: App  点击:(8)  评论:(0)  加入收藏
▌简易百科推荐
如何构建基于大模型的App
ChatGPT 的出现让大模型再一次成为业界的关注热点,然而,并不是每个组织都要去训练及生成大模型的,而且各个组织的技术积累和计算资源也不太允许这样去做。更多的时候, 我们还是...【详细内容】
2023-09-27    喔家ArchiSelf  Tags:App   点击:(283)  评论:(0)  加入收藏
Google play应用成功上架要点——如何防止封号、拒审、下架?
Google Play是全球最大的移动应用商店之一,它是运行Android操作系统的设备的官方应用商店。它提供各种数字内容,包括应用程序(应用)、游戏、音乐、书籍等,包括免费和付费选项。这...【详细内容】
2023-08-18  Balen跨境说    Tags:Google play   点击:(265)  评论:(0)  加入收藏
微信公告将备案!App为何要备案?哪些需备案?怎样办理?
8月9日,微信公众平台运营中心发布了《关于开展微信小程序备案的通知》,表示微信公众平台ICP代备案管理系统将提供新增备案、变更备案、注销备案等服务,协助开发者完成微信小程...【详细内容】
2023-08-10    北京日报  Tags:   点击:(409)  评论:(0)  加入收藏
APP开发入门:了解主流的编程语言
在过去的几年里,有许多程序员开始学习和使用编程语言。这其中包括C、C++、 Java和 Python。尽管有许多语言可供选择,但大多数程序员都会选择最容易学习的编程语言。如今,有很多...【详细内容】
2023-07-28  爱尚网络科技    Tags:编程语言   点击:(177)  评论:(0)  加入收藏
App在线封装容易吗?是什么原理?
App在线封装是一种将网页应用封装成App的技术,通过这种技术,用户可以在不下载安装App的情况下,直接在浏览器中使用App的功能。相对于传统的App开发模式,App在线封装具有更低的开...【详细内容】
2023-06-30  李hh18122    Tags:App   点击:(241)  评论:(0)  加入收藏
APP原生开发和非原生的区别
我们都知道 APP开发的时候需要根据实际情况来选择合适的开发方式,而在 APP定制开发中要考虑功能、技术以及用户体验等多方面的问题,那么就有很多人会问到这个问题:APP原生开发...【详细内容】
2023-05-19  爱尚网络科技    Tags:APP原生开发   点击:(479)  评论:(0)  加入收藏
App开发中的人机交互:如何设计出符合人机交互原则的应用程序?
随着移动应用的普及,人们对于应用程序的期望也越来越高。一个优秀的App应用程序应该是易用、易学、易记和富有吸引力的,并且应该符合人机交互的基本原则。下面我们将详细讨论...【详细内容】
2023-05-17  跨境电商360  搜狐号  Tags:App开发   点击:(382)  评论:(0)  加入收藏
OA类APP的开发流程及注意事项
OA类APP的特点是方便交流,可以随时随地与同事进行工作上的沟通。尤其对于销售类的公司员工,移动APP非常符合他们的工作场景。他们经常出差或在外拜访客户,不方便在电脑上操作办...【详细内容】
2023-05-08  北京APP外包    Tags:APP   点击:(346)  评论:(0)  加入收藏
短视频app搭建的技术难点是什么?
近年来,短视频app的流行引起了广泛关注。越来越多的企业开始投入资源来开发短视频app,以满足用户的需求。然而,短视频app的开发过程中,存在许多技术难点需要解决。本文将深入分...【详细内容】
2023-04-24  玉柏科技勇哥说软件    Tags:app   点击:(272)  评论:(0)  加入收藏
短视频app搭建前需要注意哪些事项?
如果您正在考虑搭建一个短视频app,那么在开始之前,您需要注意以下几件事情:1. 确定您的目标受众在搭建短视频app之前,您需要确定您的目标受众。这将有助于您确定app的外观、功能...【详细内容】
2023-04-21  玉柏科技勇哥说软件    Tags:app   点击:(321)  评论:(0)  加入收藏
站内最新
站内热门
站内头条