Google Play 榜单APP冷启动速度分析报告
原文链接:http://blog.nimbledroid.com/2016/02/17/cold-start-times-of-top-apps.html
Nimbledroid.com 为您开发的应用的每一版本提供自动全面的性能分析
如何让app快速启动总是让人很头疼,市面上现有的app启动速度有多快呢?下面就是我们对Google Play上排名前100的app的一个检测结果,看看我们有能发现什么?
背景:三种app启动的方式
现如今主要app的启动方式主要有三种: 初次启动、冷启动和热启动。
初次启动顾名思义——就是用户安装完这个app后第一次打开它。初次启动是三种中最慢的,因为操作系统和app需要初始化很多数据,比如创建一个SQLite数据库或者是把multidex文件编译成本地代码。与此同时,初次启动也应该是耗时越短越好,但一般也就是在安装或者升级app的时候会初次启动,所以持续测初次启动的时间并不是像测其他两种启动那么重要。
冷启动是即这个app很长时间没运行了,然后用户启动这个app。冷启动之所以“冷”是因为操作系统把不活跃的app从内存中移除了好让活跃的app有足够内存用。冷启动比较慢是因为app的代码,资源文件和一些对象需要重新加载或者创建。如果用户一天只打开这个app几次,那么每次打开就是冷启动,所以冷启动时为了让我们有更好的用户体验。
热启动即用户在切换到别的界面后很快又返回打开这个app。这是app在内存中仍然是“热”的,所以热启动速度一般很快。
总而言之,以上三种启动中,冷启动最影响用户体验,转化率最高,应该是我们优化app的重点领域。一下就是我们检测这些app冷启动的情况。
这排名前100的app冷启动情况怎样呢?
我们选择了Google Play上排名前100的非游戏类app。Google play 是基于一系列基本的数据(如:下载速度,性能,用户评价,在社交网络中的流行度)进行排名的,这些数据会随时间经常变动。我们的选的是2016年6月6日的排名,截至我们发稿时,我们持续分析了这些app。
我们剔除了游戏类的app是因为用户对这类app的启动速度显得更宽容,因为他们知道游戏要加载大量图片资源。我们也排除了我们暂不支持的app,比如那些需要用户银行账户和信用卡信息的app(比如:Uber)。我们整理好的数据如下图:
2.png(注:查看前50名和前100名的Google Play排名及冷启动时间排名的结果,请移步原网站:http://blog.nimbledroid.com/2016/02/17/cold-start-times-of-top-apps.html)
在这些数据中包含一些很有意思的内容。首先看看前25的app,有10款在2秒以内启动完成(包含2秒),20款在3秒以内启动完成(包含3秒)——这些都算启动很快的了。Instagram是启动最快的app之一,这也不奇怪,由于Instagram拥有大量的开发者去分析优化这款app。The Weather Channel和Snapchat 这2款app在Android 4.3的环境下启动是这些中最慢的。
前50的app中,有22款在2秒以内启动完成(包含2秒),40款在3秒以内启动完成(包含3秒),Chromecast这款app仅用0.8秒,是其中最快的。令人意外的是The Weather Channel和Snapchat 这2款app仍然是这些中最慢的。
前100中,有39款app在2秒以内启动完成(包含2秒),73款在3秒以内启动完成(包含3秒)。
Chromecast 仍以0.8秒的成绩夺冠。Magic Piano取代 Snapchat 和Weather Channel 以耗时11.1秒的成绩车成为启动最慢的app。
趋势很明显。排名靠前的app启动速度相对快 —— 40%在2秒内启动,70%在3秒内启动。这就是优秀的开发者会花费时间努力优化app的性能的原因。
类别分析
我们也把这些app按类别进行比较分析。我们按照app的主要功能进行分类。比如:Snapchat有发送不同文本信息的功能(能被归类为“消息”类的app),它主要像一个社交平台一样让用户可以像Facebook那样实时分享经验。我们整理的数据如下图:
3.png(注:查看应用更多分类,包括在线音乐、通讯、购物、社交媒体、在线视频、设备优化、图像编辑的Google Play排名及冷启动时间排名的结果,请移步原网站:http://blog.nimbledroid.com/2016/02/17/cold-start-times-of-top-apps.html)
音乐播放类
音乐播放类中,启动最快的是My Mixtapez。Spotify以启动时间1.6秒(该类app平均成绩的一半)的成绩紧随其后,Spinrilla是最慢的,耗时达到Mixtapez的7倍。
消息类
WhatsApp是该类中最快的,比该类中最慢的GO SMS Pro快了接近4倍。FacebookMessenger也不出意外是市面上消息类app启动最快的之一,开发团队规模中等的app比如 Kik 启动时间却相当长,拥有更小团队开发者的app 比如 Talkatone,GO SMS Pro启动速度更是极度缓慢。有意思的是那些在广告中重点主打来电功能的app启动耗时更长,全然不顾同类的启动更快的app却有同样的功能。
购物类
一般来说,排名靠前的购物类app比消息类启动稍快。电商们知道让那些急于购物的用户快速地接触到商品会给他们创造更多的收入。eBay是迄今为止启动最快的购物类app,这也是因为eBay的app代码中没有海量的方法。所以它比该类最慢的OfferUp大约快了2.5倍。另一方面Groupon吹嘘他们代码中有同类中最多的有问题的方法。这些性能问题部分原因是因为代码中用了Roboguice这个库来依赖注入。方便的解决之道是用Dagger这个库来替代Roboguice。
社交类
毫无悬念的是 Instagram是该类中启动最快的app。正如前面提到的Instagram 的开发者们在过去的一年里特别注重启动耗时的优化,这也让他们的劳有所获。Instgram 启动速度比该类的最慢的Snapchat快了4倍。这还是很让人吃惊的——我们以为流行的app启动都会比较快,然而Snapchat是个例外。
视频播放类
我们惊讶地发现Youtube和Youtube Kids这两款app启动耗时的不同。我们的分析发现Youtube Kids是在一些依赖上耗时更多,这些连带着别的实现上的限制会花更多时间,这也解释了二者在启动耗时上的不同。
设备优化类
考虑到这类app主打的就是设备加速功能,我们希望这类的app能快速启动,Z Speed+是该类中启动最快的,比DU Battery Saver快了0.2秒。这比该类的最慢的app(DU Speed Booster & Antivirus)快了接近3倍。
相片编辑类
相片编辑类软件在移动端非常流行,因为用户喜欢在分享他们和朋友的照片之前做一些润色、修改。Photo Grid 启动速度极快,启动只需要1.1秒。它比启动耗时恐怖的达8.8秒的Photo Editor Pro快了足足8倍。
总结
我们注意到一个有趣的现象,那就是那些名字里包含“Pro”(如:Photo Editor Pro 和 GO SMS Pro)的app通常是同类中的启动速度最慢的app之一。仅仅说自己的app好还远远不够——你还必须向用户证明你的app能表现地很好。
总而言之,排名靠前的app(除了少数的异类)启动速度是相当快的。我们再怎么强调app的启动耗时也不为过,因为这是让这些app如此成功的重要组成部分。优秀的开发者仍然在殚精竭虑地希望能让他们的app启动更快,想成为一个伟大的开发者,你也应该朝着这个方向努力。