皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

我们分析了100个移动应用程序 发现了让APP更快的秘籍

作者 阿卡迈        

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

API分析:第一方与第三方

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

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

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

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

 

我们分析了100个移动应用程序 发现了让APP更快的秘籍这为什么很重要?

第三方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能够使移动网络的性能显着提升。

我们分析了100个移动应用程序 发现了让APP更快的秘籍

2、非标准User-Agent字符串

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

3、未使用HTTP/2协议

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

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

APP 速度优化的关键问题

  1. 复杂的移动网络环境:移动环境复杂多变,很容易从快到慢,从慢到无。如何保证用户获得始终如一的良好体验?
  2. 最后一公里延迟:在移动网络中,信号是以电磁波的形式通过基站、在不同区域之间进行传播。这导致蜂窝网络的延迟、不可靠。

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

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

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

返回用户网络状况

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

智能预设内容

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

加速最后一公里

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

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

不同终端交互一致

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

我们分析了100个移动应用程序 发现了让APP更快的秘籍

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

写在最后

APP性能问题是一个复杂的领域问题,解决性能问题关键是找出性能瓶颈,但如果永远只能“东窗事发”之后进行查找补救还远远不够,因而在解决系统性能的道路上,需要在系统开发时就给予足够的重视,甚至在架构决策时,就开始考虑性能的需求。移动应用程序之初便是对 API的构建,Akamai从API 加速 、 缓存、 压缩、Prioritization Cloudlet四个维度给出了比较全面的API优化方案与建议,感兴趣的读者可以点击学习

转自 http://www.infoq.com/cn/news/2017/06/APP-HTTP2-Akamai-CDN