http://wiki.jikexueyuan.com/project/geekdigest/images/coldstart.png" alt="" />
原文鏈接:http://blog.nimbledroid.com/2016/02/17/cold-start-times-of-top-apps.html
Nimbledroid.com 為您開發(fā)的應用的每一版本提供自動全面的性能分析
如何讓app快速啟動總是讓人很頭疼,市面上現(xiàn)有的app啟動速度有多快呢?下面就是我們對Google Play上排名前100的app的一個檢測結果,看看我們有能發(fā)現(xiàn)什么?
現(xiàn)如今主要app的啟動方式主要有三種: 初次啟動、冷啟動和熱啟動。
初次啟動顧名思義——就是用戶安裝完這個app后第一次打開它。初次啟動是三種中最慢的,因為操作系統(tǒng)和app需要初始化很多數(shù)據(jù),比如創(chuàng)建一個SQLite數(shù)據(jù)庫或者是把multidex文件編譯成本地代碼。與此同時,初次啟動也應該是耗時越短越好,但一般也就是在安裝或者升級app的時候會初次啟動,所以持續(xù)測初次啟動的時間并不是像測其他兩種啟動那么重要。
冷啟動是即這個app很長時間沒運行了,然后用戶啟動這個app。冷啟動之所以“冷”是因為操作系統(tǒng)把不活躍的app從內存中移除了好讓活躍的app有足夠內存用。冷啟動比較慢是因為app的代碼,資源文件和一些對象需要重新加載或者創(chuàng)建。如果用戶一天只打開這個app幾次,那么每次打開就是冷啟動,所以冷啟動時為了讓我們有更好的用戶體驗。
熱啟動即用戶在切換到別的界面后很快又返回打開這個app。這是app在內存中仍然是“熱”的,所以熱啟動速度一般很快。
總而言之,以上三種啟動中,冷啟動最影響用戶體驗,轉化率最高,應該是我們優(yōu)化app的重點領域。一下就是我們檢測這些app冷啟動的情況。
我們選擇了Google Play上排名前100的非游戲類app。Google play 是基于一系列基本的數(shù)據(jù)(如:下載速度,性能,用戶評價,在社交網絡中的流行度)進行排名的,這些數(shù)據(jù)會隨時間經常變動。我們的選的是2016年6月6日的排名,截至我們發(fā)稿時,我們持續(xù)分析了這些app。
我們剔除了游戲類的app是因為用戶對這類app的啟動速度顯得更寬容,因為他們知道游戲要加載大量圖片資源。我們也排除了我們暫不支持的app,比如那些需要用戶銀行賬戶和信用卡信息的app(比如:Uber)。我們整理好的數(shù)據(jù)如下圖:
http://wiki.jikexueyuan.com/project/geekdigest/images/coldstart1.png" alt="" />
(注:查看前50名和前100名的Google Play排名及冷啟動時間排名的結果,請移步原網站:http://blog.nimbledroid.com/2016/02/17/cold-start-times-of-top-apps.html)
在這些數(shù)據(jù)中包含一些很有意思的內容。首先看看前25的app,有10款在2秒以內啟動完成(包含2秒),20款在3秒以內啟動完成(包含3秒)——這些都算啟動很快的了。Instagram是啟動最快的app之一,這也不奇怪,由于Instagram擁有大量的開發(fā)者去分析優(yōu)化這款app。The Weather Channel和Snapchat 這2款app在Android 4.3的環(huán)境下啟動是這些中最慢的。
前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秒內啟動。這就是優(yōu)秀的開發(fā)者會花費時間努力優(yōu)化app的性能的原因。
我們也把這些app按類別進行比較分析。我們按照app的主要功能進行分類。比如:Snapchat有發(fā)送不同文本信息的功能(能被歸類為“消息”類的app),它主要像一個社交平臺一樣讓用戶可以像Facebook那樣實時分享經驗。我們整理的數(shù)據(jù)如下圖:
http://wiki.jikexueyuan.com/project/geekdigest/images/coldstart2.png" alt="" />
(注:查看應用更多分類,包括在線音樂、通訊、購物、社交媒體、在線視頻、設備優(yōu)化、圖像編輯的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啟動最快的之一,開發(fā)團隊規(guī)模中等的app比如 Kik 啟動時間卻相當長,擁有更小團隊開發(fā)者的app 比如 Talkatone,GO SMS Pro啟動速度更是極度緩慢。有意思的是那些在廣告中重點主打來電功能的app啟動耗時更長,全然不顧同類的啟動更快的app卻有同樣的功能。
一般來說,排名靠前的購物類app比消息類啟動稍快。電商們知道讓那些急于購物的用戶快速地接觸到商品會給他們創(chuàng)造更多的收入。eBay是迄今為止啟動最快的購物類app,這也是因為eBay的app代碼中沒有海量的方法。所以它比該類最慢的OfferUp大約快了2.5倍。另一方面Groupon吹噓他們代碼中有同類中最多的有問題的方法。這些性能問題部分原因是因為代碼中用了Roboguice這個庫來依賴注入。方便的解決之道是用Dagger這個庫來替代Roboguice。
毫無懸念的是 Instagram是該類中啟動最快的app。正如前面提到的Instagram 的開發(fā)者們在過去的一年里特別注重啟動耗時的優(yōu)化,這也讓他們的勞有所獲。Instgram 啟動速度比該類的最慢的Snapchat快了4倍。這還是很讓人吃驚的——我們以為流行的app啟動都會比較快,然而Snapchat是個例外。
我們驚訝地發(fā)現(xiàn)Youtube和Youtube Kids這兩款app啟動耗時的不同。我們的分析發(fā)現(xiàn)Youtube Kids是在一些依賴上耗時更多,這些連帶著別的實現(xiàn)上的限制會花更多時間,這也解釋了二者在啟動耗時上的不同。
考慮到這類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倍。
我們注意到一個有趣的現(xiàn)象,那就是那些名字里包含“Pro”(如:Photo Editor Pro 和 GO SMS Pro)的app通常是同類中的啟動速度最慢的app之一。僅僅說自己的app好還遠遠不夠——你還必須向用戶證明你的app能表現(xiàn)地很好。
總而言之,排名靠前的app(除了少數(shù)的異類)啟動速度是相當快的。我們再怎么強調app的啟動耗時也不為過,因為這是讓這些app如此成功的重要組成部分。優(yōu)秀的開發(fā)者仍然在殫精竭慮地希望能讓他們的app啟動更快,想成為一個偉大的開發(fā)者,你也應該朝著這個方向努力。