Google Play榜单APP冷启动速度分析报告
- English |
- 中文
此前的一篇文章 中我们强调了APP应该快速启动,但现在应用市场上的APP启动速度如何?我们在这篇文章中测量了 Google Play商店中排名前100名APP的启动速度,并和大家分享我们的分析结果。
背景:三种APP启动模式
通常APP启动会有三种模式:首次启动,冷启动,和热启动。
首次启动是指用户在安装APP之后的第一次启动。首次启动的速度是最慢的,因为操作系统需要进行许多初始化操作,例如创建SQLite数据库,将多个dex文件编译为本地代码等。尽管首次启动越快越好,但由于它只会在用户安装或者更新APP的时候才会发生一次,所以优化首次启动速度的效果不如优化其他启动模式的效果明显。
冷启动是指用户长时间未运行APP之后再次启动APP。冷启动之“冷”,是由于操作系统为了给其他活跃的APP腾出资源,把长时间未运行的APP进程杀死,将其资源从内存中移除了。由于重新启动的APP的代码、资源、数据对象等需要重新加载和创建,所以冷启动通常会比较慢。如果用户每天只会启动APP几次,那大多数情况下每次启动都属于冷启动,因此提升冷启动的速度能显著提高用户体验。
热启动是指用户短时间切换到其他APP之后再次切换回来。这种情况下APP的进程并未被操作系统杀死, 资源仍保持在内存中,所以热启动的速度通常都很快。
小结一下,在这三种启动模式中,冷启动的速度在用户体验上感知最显著,应该作为启动速度优化的重点。下文中,我们测量了Google Play商店中榜单APP的冷启动速度。
榜单APP的冷启动时间是多少?
为了分析APP的冷启动时间,我们从Google Play商店中选择了排名前100的非游戏类APP。Google Play的排名是基于多种不同的角度进行的,包括下载量,性能,用户评分,以及社交媒体的流行度。APP的排名通常是随时变化的,我们选取的APP是基于2016年2月6号的排名数据,APP的性能测量会在本文撰写过程中持续进行。
我们排除游戏APP的原因是用户对于游戏的慢启动有很高的容忍度,他们知道游戏需要加载很多图片资源。此外我们也排除了目前NimbleDroid平台尚不支持的应用,例如需要银行账号以及信用卡信息的APP(例如Uber)。
我们的评测设备是Nexus 5手机(中等性能手机的代表)以及Android4.4(当前用户最多的Android版本)。
我们根据测量结果绘制了如下图表:
从上面的数据中我们可以分析出很多有趣的结论。首先让我们看看排名前25的APP,其中有10个APP冷启动时间在2秒以内, 20个APP冷启动时间在3秒以内,这些APP的冷启动速度非常快。 Instagram是冷启动最快的APP之一,这并不奇怪,因为他们为优化性能投入了巨大的时间和精力。The Weather Channel和Snapchat是榜单前25名APP中冷启动速度最慢的,耗时4.3秒。
榜单前50名的APP中,22个冷启动时间在2秒以内,40个冷启动时间在3秒以内。Chromecast是其中冷启动最快的,只需0.8秒。出乎意料的是, The Weather Channel和Snapchat 依然 是其中冷启动速度最慢的APP。
榜单前100的APP中,39个冷启动时间在2秒以内,73个冷启动时间在3秒以内。Chromecast仍以0.8秒位列第一。Magic Piano替代Snapchat和Weather Channel成为了冷启动最慢的APP,耗时11.1秒。
趋势非常明显,大部分的榜单APP冷启动都相对较快,40%冷启动时间在2秒以内,70%冷启动时间在3秒以内。优秀开发者为优化APP性能花费的大量时间在此体现了巨大的价值。
分类明细
我们还对相同分类下的榜单APP进行了对比,为此我们分析了每个APP的核心功能。例如,Snapchat支持发送常规的文本消息,可以归类为“通讯”,但是它的核心功能是用户可以在这个平台上实时分享自己的生活,就像Facebook一样。我们根据测量数据绘制了如下图表:
在线音乐
在线音乐分类中,冷启动最快的是My Mixtapez,其次是Spotify,耗时1.6秒,只有该分类中平均冷启动时间的一半。Spinrilla是最慢的,是同类最快APP冷启动时间的7倍。
通讯
WhatsApp是该分类 中最快的,冷启动速度是最慢的GO SMS Pro的4倍。不出意料,Facebook Messenger是通讯分类下最快的APP之一。速度居中的APP中,Kik启动速度明显更慢,而Talkatone和GO SMS Pro这样开发团队规模更小的APP,启动速度非常慢。另一个有趣的现象是,重点宣传具备通话功能的APP,启动速度更长,即便其他启动更快的APP也具备同样的功能。
购物
平均来说,购物分类下的榜单APP启动速度比通讯分类下的要快。电子商务行业人士知道,用户对速度的容忍度很低,如果更快地向用户展示商品内容,将会带来更多的收入。eBay是购物分类下启动最快的APP,它的执行过程中几乎没有长耗时的函数。OfferUp是购物分类下启动最慢的APP,eBay的启动速度是OfferUp的2.5倍。Groupon是购物分类下执行长耗时函数最多的APP,其中一部分来自依赖注入框架Roboguice,如果使用Dagger的话,将有较大提升。
社交媒体
毫无疑问,Instagram是本分类中启动最快的,前文中有提到,Instagram的开发者曾投入一整年的时间用于优化性能,这项投入取得了巨大的成效:Instagram启动速度是本分类最慢的Snapchat的4倍。Snapchat的表现有点以外,我们通常认为火爆的APP性能都会更好,然而它是一个奇怪的例外。
在线视频
令我们惊讶的是YouTube和YouTube Kids两者的启动时间差异悬殊。我们的测量发现YouTube Kids启动时在其依赖库中耗费了大量的时间。这一点,再加上实施限制所需的额外时间,可以解释在启动时间上的差异。
设备优化
我们会期望本分类下的APP启动会非常快,因为它们的核心功能就是加速用户的系统。Z Speed+是本分类下最快的APP,比DU Battery Saver快0.2秒,启动速度是本分类最慢的DU Speed Booster & Antivirus的3倍。
图像编辑
图像编辑APP在移动设备上异常火爆,因为用户喜欢在和朋友分享照片之前都进行一定程度上的美化。Photo Grid轻量快速,启动仅需1.1秒,启动速度是本分类最慢的Photo Editor Pro的8倍。
总结
我们还发现另一个有趣的现象,名字中有“Pro”的APP(例如Photo Editor Pro和GO SMS Pro)通常都是同类APP中最慢的 :) 。仅仅是宣称自己的APP优秀是不够的,应该优化APP,让用户确实感受到优秀之处。
总的来说,榜单APP的启动速度都是很快的,当然有个别例外。虽然我们并不能把一个APP的成功完全归因于启动的速度快,但是优秀的开发者总是会寻求提升APP的启动速度的办法,同样作为优秀开发者的你,也应该行动起来!