Facebook经验:如何保证不同网络环境下的应用体验

Facebook分享了关于移动应用适配方面的演讲,High Scalability在相关演讲的基础上进行了整理。如何保证移动应用在不同的网络环境、不同的屏幕上都有良好的用户体验一直是个难题,而Facebook有遍及全球的用户,他们一直致力于提高用户体验,在大会上,Facebook重点从团队、技术方面分享了他们的经验。

一开始,Facebook的应用只针对拥有高配置设备的用户,在低配置设备上,应用体验非常糟糕。而根据调查显示,很多Facebook用户使用的手机都是在2011年左右生产、双核心、内存小于1GB。紧接着,为了满足这部分用户的需求,Facebook专门开发了单独的应用,这些应用在动画切换等方面都做了特殊处理。对于小屏幕的手机,Facebook也专门设计了适配的应用。根据API等级、屏幕大小的不同,Facebook应用有20多个不同的APK(Android)。

在团队方面,Facebook以产品为中心来组织团队。每个产品都对应一个单独团队,这个团队负责保证产品的性能以及可靠性。另外会有单独的核心团队负责发现、分析并解决性能方面的问题。核心团队和产品团队各司其职,互相促进。

由于地区的差异,Facebook用户的网络环境各不相同,所以访问Facebook应用的延时也各不相同。为了避免由于网络延迟而影响用户体验,Facebook主要做了三方面的工作,具体如下:

  • 减小图片大小(使用WebP格式的图片)
    大部分的Facebook应用数据都是图片,因此减少图片的大小就可以较少数据的下载量,从而加快下载速度,这一点在高延迟的网络环境下非常重要。Facebook返回给客户端的图片都做了压缩处理,图片压缩方面业内主要使用gzip压缩,常见的服务器都支持gzip压缩。另外,Facebook大规模使用了WebP格式的图片,WebP是谷歌推出的一种新的图片格式,可以将图片大小减少40%,目前淘宝也有使用这种格式的图片。WebP不仅可以大幅度减少图片大小,而且还支持透明度和动画。对于一些不支持WebP的设备,Facebook会在客户端把它转码为JPEG格式的图片。

前不久,Facebook也赞助了来自Mozilla实验室的JPEG图像编码器项目mozjpeg,mozjpeg可以在不降低图像质量且兼容主流的解码器的情况下,提供产品级的JPEG格式编码器来提高压缩率以减小JPEG文件的大小。感兴趣的读者可以尝试使用。

  • 网络质量检测
    Facebook在每个响应的的HTTP头中都提供了RTT(Round Trip Time)估算,客户端根据平均吞吐量和RTT时间来确定网络连接的质量。网络连接质量会大致被评为几个级别:优秀、良好、一般、差。开发人员针对不同的网络连接级别来调整相应的功能,比如增加/减少压缩调整并行的请求数量、禁止/允许自动播放视频、预加载内容。另外,Facebook还专门开发了Air Traffic Control以支持不同网络环境下的配置文件模拟。
  • 预加载内容
    预加载可以使用空闲时间来预先下载/加载用户接下来很可能会浏览的资源,在高延迟的网络环境下,内容预加载可以减少用户的等待时间。比如在网络连接不好的情况下,Facebook会在应用启动时加载基础数据。使用预加载内容方案时要注意不要让后台网络请求阻塞正常的网络请求,这块Facebook主要使用了一个优先队列来存储请求。

目前,相关的演讲也已经发布到了YouTube,读者可以自行观看。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-11-05 16:37:47

Facebook经验:如何保证不同网络环境下的应用体验的相关文章

安恒信息安全专家刘志乐:复杂网络环境下的大数据安全态势感知

一年一度的阿里安全峰会创立于 2014 年,今年已是第三届,于7月13-14日在北京国家会议中心举办.峰会旨在促进亚太区信息安全行业发展,为本地区信息安全组织.信息安全专业人士和决策者搭建一个信息交流展示平台,探讨当前安全行业的最佳实践.热点议题.信息安全人才培养.新 兴技术与发展趋势等.2016 阿里安全峰会设立12个分论坛,数十家领军企业参与.国内外顶级安全专家演讲,在电商金融安全,移动安全,威胁情报,人才培养,电子取证等热门安全行业问题进行深入探讨与交流,除此之外大会前一天还进行了顶级电商

Linux网络环境下如何玩转GMail信箱

博客(Blog).维基(Wiki).播客(Podcast).RSS阅读改变了人们对传统门户网站的依赖,那么从Gmail开始,人们将改变传统电子邮件应用的体验.上世纪末第一代互联网兴起的时候,当时大家所申请的免费信箱大部分都是2M左右的.那个时候很多网民的网络带宽从14.4K的拨号调制解调器到56K不等,但现在512KB以上的宽带的普及率已经相当高了.随着现在带宽的不断提升,存储成本的持续下降,用户在线时间的延长,电子邮件作为最核心的互联网应用,必然需要转变以适应今天的网络环境.终于2004年4月

基于资源编排在经典网络环境下快速部署高可用的Dubbox服务(Redis版)

本文将介绍在经典网络环境下,基于资源编排快速部署高可用Dubbox服务的过程.做这件事情的意义在于:提供给开发者一套高可用的Dubbox服务框架,节约开发人员部署Dubbox服务的时间,并降低了部署Dubbox过程中出错的风险. ROS阿里云资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务.用户通过模板描述多个云计算资源的依赖关系.配置等,并自动完成所有资源的创建和配置,以达到自动化部署.运维等目的.编排模板同时也是一种标准化的资源和应用交付

“飞音网络电话”在国内率先支持WiFi无线网络环境下手机直拨通话

从业界渠道获悉,国内率先支持在WiFi无线网络环境下进行手机直拨通话的手机电话软件客户端"飞音网络电话",正在面向全体互联网用户推出主题为<给力特惠欢乐送>的限时大规模用户感恩回馈,这是"飞音网络电话"首度推出包含有两大实惠型大额免费话费回馈的感恩限时特惠.据了解"飞音网络电话"的<给力特惠欢乐送>有两大亮点:一是用户进行话费充值时可获与充值金额等值的免费话费赠送,相当于可以把"飞音网络电话"原本0.0

新网络环境下应用层DDoS攻击的剖析与防御

应用层DDoS攻击分析 1.Net-DDoS攻击与App-DDoS攻击 按攻击所针对的网络层次可以把DDoS攻击分为:网络层DDoS(Net-DDoS)攻击和App-DDoS攻击.Net-DDoS攻击主要是利用了现有低层(包括IP层和TCP层)协议的漏洞来发动攻击.典型的攻击方式是:使用伪造IP地址的攻击节点向目标主机发送大量攻击分组(TCP. ICMP.UDP等分组),利用TCP的三次握手机制使目标服务器为维护一个非常大的半开放连接列表而消耗非常多的CPU和内存资源,最终因为堆栈溢出而导致系统

VPN网络环境下访问业务系统出现WCF中止服务现象

问题描述 问题描述:业务系统代码采用siverlight+wcf方式,出现问题的代码段使用了foreach循环,大约调用50多次,如下:foreach(TropicalCycloneModelmodelinTropicalCycloneModelCollection){MainMapViewServiceClientClientChina=ServiceUnit.ServiceUnit.GetMainMapViewSvcClient();ClientChina.GetOneTropicalCyl

Exchange2007在不同网络环境下会出现集成windows身份验证窗口

问题描述 各位专家好:我的exchange2007server使用基于表单的身份验证,在局域网内部访问正常,在外网访问部分正常,但是在某些地区访问时会出现windows身份验证窗口,输入exchange的用户名和密码也无法通过验证,但是根据分析这些地区的网络环境就是正常的路由器上网方式,不知道是什么原因引起的,有什么解决办法. 解决方案 解决方案二:OutlookorOWA?解决方案三:Outlook还要formbasedauthentication?你太牛了:)这种情况往往是你得验证报文由于某

Windows环境下安装Redis体验谈

 Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windows版项目是由微软开放技术团队建立和维护一个实验性项目(支持32,64位),所以并不适用生产环境,但可在Windows环境下用于开发测试. 1.下载安装 猛戳这里就到了开源首页,下载源码包,解压ZIP包后进入msvsbinrelease文件夹有三个文件分别对应32,64位,windows服务三个版

说说当下网络环境下 哪种网站最赚钱

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在中国,往往一个成功的网站背后都拥有无数仿制者.就如同好123网址被百度以1190万收购70%的股份.从此,网址导航站便如雨后春笋般出现,到达网址导航前所未有的顶峰期,无非就是想从中分一杯羹. 2008年,sns网站红火了,开心网几乎成为一夜爆发户,注册用户到达2亿,中国网民也不过3亿多,在多么巨大的诱惑之下,使每个站长心动都想建立SNS网站,从而假冒开心网,人人网多不胜数. 2009年,小游戏终于火了,4399小游戏成功了,7k7k小游戏也成功了