为了让手机更省电,你知道Facebook有多努力吗?

界面新闻   2016-07-24 08:07
作者:极客视界 ·

在美国普林维尔山的 Facebook 第一数据中心,拥有大约 60 组服务器机架,而每个机架中都放上了 32 部较早型号的智能手机,这些智能手机都在做一件事:不间断的运行同一版本的 Facebook App。

放这么多台手机就是为了运行 Facebook App,而已??

如今,很多大的软件公司已经开始建立测试系统来测试自己的 App 的稳定性,一些专业的移动测试初创公司也已经开始被大规模软件公司所收购,例如 2014 年谷歌就收购了总部位于旧金山的移动应用测试公司 Appurify。

在这种日渐激烈的竞争环境下,Facebook 的研发团队开始建立起属于自己的测试系统。

在去年 Facebook 就已经在一项被称为 CT-Scan 的服务上,开始测试 Facebook Messenger 以及 Instagram 等社交软件在运行程序更改后对移动设备产生的影响。

根据工程师先提供程序新代码,CT-Scan 会开始分析增加新代码后对于系统的运行的影响。这些影响包括,是否会占据更多的系统内存、不同操作系统的智能设备是否能够流畅运行增加新代码的软件,以及新代码是否会导致电池消耗过快从而缩短设备待机时间等。

不过 CT-Scan 也不是完美无瑕的,其只能够针对单一一种智能设备进行测试,而对于日益增多的智能设备操作系统以及智能设备手机型号却无能为力。

为了可以测试不同的智能手机设备,测试人员不断改进测试系统。经过了多次改进,有了“移动设备实验室”。

“移动设备实验室”主要是用来测试在老旧型号手机上 Facebook App 运行时的电量消耗情况,从而发现软件的不足之处,再过对软件代码的不断修改,来提高 Facebook 的兼容性。其实有时候只是代码上极其微小的缺陷,就会导致智能手机待机时间缩短或者性能下降。

Facebook 在全球范围内共有 16.5 亿用户,考虑到这些用户所使用的智能设备不尽相同,共选择了接近 2000 部智能手机进行测试,希望可以借此研究软件对于智能手机电量的影响。参与测试的智能手机有两三年前生产的型号,甚至还包括了一些针对发展中国家市场的廉价机型。

▲真是为我们的智能手机电量操碎了心

为了解决多个智能手机同时使用 Wi-Fi 网络时产生的干扰以及渲染测试问题,测试人员搭建了叫“sled”的机架,每组不同的机架都配有独立的 Wi-Fi 网络,同时进行了电磁干扰屏蔽处理,从而解决干扰问题。

研发团队还建立“slatwall”,能够同时容纳 240 部智能手机,但这些智能手机占据了罗帕克市总部的整个房间。建立一整套这样的“slatwall”系统需要占据 9 个规模相同的房间,所以在去年 3 月这个实验室被转移到面积更大的普林威尔数据中心。

为了使得智能手机能够获得最新的代码,所以在每组不同的机架下都摆放着 PC 和 Mac Mini。使用了 8 台适用于苹果设备的 Mac Minis 服务器和 4 台适用于安卓设备的基于 Linux 的 OCP Leopard 服务器,而每台服务器都能够连接到同等数量的苹果以及 Android 设备。

每组机架上的摄像头能够录制每部参加测试的智能手机的屏幕运行状况,研发人员可以通过摄像头来远程记录软件运行情况。为了确保每次的测试都具有可比性,每部智能手机在完成测试之后都会进行卸载以及系统重新启动。

每次研发人员更改代码之后,Facebook 团队都会推出全新版本的应用程序。而在推出这些新版本应用程序之前,都要经过这套测试系统进行测试,来检测新版本 Facebook 是否会对智能手机造成影响。而在测试之后,研发团队会专门进行不良影响的分析,来分析应用程序代码改变与智能手机兼容性之间的关联。

不过,“移动设备实验室”无法测试智能手机在不同网络环境中的表现,这是因为所以的测试机型都使用了 Facebook 专用的 Internet.org。而这一专用网络是使用弱信号或无形网络将世界各地连接起来,未来还可能使用太阳能无人机。目前的测试主要是针对程序代码改变和智能手机耗电量之间关联的,并不是为了检测和优化 Facebook 软件在网络状况较差环境下的使用情况。并且,目前还没有针对类似问题的测试出现。

不过,Facebook 团队表示在今年夏天的时候,每组机架放置的智能手机将会增加至 64 部,还会进行一系列的硬件和软件改革计划,用来进行大屏幕智能手机的测试。不过整个测试过程还是存在一定的弊端的,例如说进行一个 iOS 设备的稳定测试,至少需要手动操作 20 个步骤才能够完成。研发团队正在努力减少操作步骤,增强测试的可操作性。

Facebook 还将共享一种全新的测试方式,通过这种方式任何新版软件、无论是否为 Facebook 所开发,都能够在老旧机型上进行兼容性测试,从而可以提高新版本软件对于老旧型号智能手机的兼容性,以确保老旧型号手机没有那么快“落伍”。

Geek's view

看来以后想要好几年才换新手机的目标,指日可待了!