让APP更快

2017 - 06 - 19

Posted by Akamai & InfoQ

据不完全统计,平均每人每天要跟 10 多个 App 打交道,无疑,App 已成为手机生态系统的核心应用。体验好的 App 应该具备增加用户转化率、驱动用户安装、增加用户忠诚度三点。如何提升 App 的用户体验,全球最大的 CDN 服务商 Akamai,通过对应用商店中前 100 个 App 的移动性能分析,提出了目前移动 App 普遍存在的问题,并提供了一套全面的 App 优化方案。

API 分析:第一方与第三方

一个移动 APP 由两类 API 组成:

  • 第一类是对应用程序加载,负责用户体验的至关重要的 API。

  • 另一类负责收集信息,分析数据,启用广告追踪和社交媒体整合的第三方 API。 这类 API 对用户体验并不重要。

分析显示,每个移动 App 平均包含 8 个第三方 API 和 4 个第一方 API:

在前 100 个 App 使用的第三方 API 中,有 73 家企业使用了 Google Analytics 和 Ad SDK:

这为什么很重要?

第三方 SDK 主要用于分析和跟踪移动 App 的崩溃状况,但太多的第三方 SDK 和 API 会损害移动应用程序的性能,因此了解您的 App 需要多少必要的第三方 API 至关重要。 例如,App 的部分应用程序被第三方广告代码轰炸,会导致关键 API(第一方)和非关键 API(第三方)之间的套接字争用,影响用户体验。

移动性能分析

通过分析每个 App 的.har 文件来获取关于性能更多的信息(.har 文件提供了对应用程序的每个请求的洞察,并能够提供 DNS 连接、TCP 和 TLS 连接时间的数据,响应时间,下载时间等)可以发现:

1、较少的移动 APP 在使用 IPv6

前 100 个 App 中,84.2% 的 App 没有使用 IPv6,5% 以下的 App 使用了 IPv6。蜂窝网络上的 IPv6 连接比 IPv4 连接相对更快,Facebook 和 Linkedin 进行的 RUM(实际用户监控)研究显示, 使用 IPv6 能够使移动网络的性能显着提升。

2、非标准 User-Agent 字符串

移动 App 则通过发送“User-Agent 字符串”向网站传递客户端的信息,标准的 User-Agent 字符串包含设备信息和使用的浏览器类型。当今很多移动 App 通过客户端信息来做出决策,比如根据设备类型调整图像大小。但是 User-Agent 字符串错误或不标准时,所有基于用户信息的字符串失败。据调查,大多数图像处理服务并不会根据设备类型调整图像大小,从而导致将非常大的图像下载到设备。在本文分析样本中,有 67.9%的移动应用在请求内容时具有非标准 User-Agent 字符串。

3、未使用 HTTP/2 协议

HTTP/2 具有标题压缩和套接字重用的功能,可避免创建新的 TCP 套接字,并为每个请求协商 TLS,从而减少加载时间。尽管大多数企业对域名已启用了 HTTP/2,但这并不意味着 App 也能正常使用 HTTP/2 协议,因此,需要升级移动应用程序网络库来支持 HTTP/2。

通过分析不难发现,大部分 App 都存在一定的问题,可以采用“优化 API”和“升级 HTTP/2 协议”的方法提速。要想提高下载率和用户参与度,App 不仅需要拥有引人入胜的内容,也要提供极致的用户浏览体验。如何在保证速度的前提下承载更丰富的内容?答案是——优化每一个关键问题!

APP 速度优化的关键问题

  1. 复杂的移动网络环境:移动环境复杂多变,很容易从快到慢,从慢到无。如何保证用户获得始终如一的良好体验?

  2. 最后一公里延迟:在移动网络中,信号是以电磁波的形式通过基站、在不同区域之间进行传播。这导致蜂窝网络的延迟、不可靠。

目前 CDN 服务商节点只能放在基站后面。这就意味着传统 CDN 对于“基站——用户”这段距离无法加速。“这段距离”就像一片烟雾笼罩在云里的用户端,而雾气缭绕之下就是著名的最后一公里问题。

解决方案:智能与工具的双剑合璧

以上关键问题,除了在 CDN 云平台的智能优化,还可以借助外部工具。我们根据网络运营中需要注意的事项,总结了以下 4 点建议。

返回用户网络状况

移动环境复杂多变,这就需要你的 App 能快速感知网络环境。因此,开发人员需要一个 API 接口,能够访问并返回实时网络状态,以便根据返回值预先设置不同网络状态下加载的内容。提前设置网络状态佳的情况下加载高清图像,网络不佳时减少图像像素。

同时也可根据网络状态调节推送内容,如网络不佳时返回少量关键搜索结果。

智能预设内容

移动应用程序开发人员能以智能方式,预先定位内容。开发人员可收集统计信息得到用户偏好,并根据用户偏好、客户端和服务器之间设置的协议预制内容。用户进行注册后,预置内容自动加载到设备上。这将允许用户在离线的状态,依然可以从 App 中获得良好的体验。

加速最后一公里

以往移动终端只能根据所处网络所给的默认 DNS 来决定和哪个服务器通讯,无法控制最后一公里的性能。现在,通过 Akamai 的 Sureroute for cellular 技术,移动终端可以获得多组 CDN 的服务器节点目标地址。结果可能有一个运营商的不同区域地址,甚至不同运营商的地址。

终端会发出极微小的探测包,向不同地址结果赛跑探测,实时判断出真实连接性能最好的节点地址。同时,它也带来了多路径冗余备份的能力!

不同终端交互一致

不同于 Web 站点的是,App 受限于移动设备和操作系统。为了适应不同设备大小,App 开发者需要根据目前市场上主流手机品牌、型号、尺寸来设计不同密度图像。想让越多不同的屏幕大小的手机能够适应你的 App,则生成的图片屏幕密度版本要越齐全。

开发者可以引入一站式“图像管理器”——自动优化每张在线图像,实现适合于所有图像和设备大小和品质的最佳结合,提升浏览体验,简化开发流程。

Table of Contents