隨着移動互聯網和物聯網技術的成熟,智能家居再度成爲全球製造業轉型升級的焦點,傳統制造業巨頭和新興互聯網巨頭紛紛佈局,據調研機構statista數據顯示,截至2016年10月,全球智能家居市場收入爲168.17億美圓,中國市場僅次於美國,達到11.84億美圓。將來幾年,中國智能家居產業的複合增加率預計爲每一年62.5%,到了2021年市場規模將達134.29億美圓。mysql
而早前一份中國智能家居行業的調查數據顯示,雖然用戶對智能家居的感興趣程度高達95.2%,但卻有87.5%的用戶對智能家居現狀不滿,表示跟預期徹底不符、或低於預期,智能家居的「智能化」仍停留在家庭設備的聯網協同上,遠沒有真正提高人們的生活感覺,最直觀的表現就是智能家居APP的用戶體驗差。應用做爲人機交互的全新入口,其用戶體驗的重要性隨着智能設備的普及愈來愈重要,那麼如何才能經過持續優化用戶體驗,提升用戶滿意度,提高用戶留存等關鍵業務指標呢?android
下面就由雲智慧應用性能優化專家跟你們聊聊智能家居行業移動應用性能分析的那些事,內容分爲三方面:一、行業APP常見性能問題;二、行業APP應用性能對比;三、APP應用性能診斷分析。
行業APP常見性能問題算法
春節將至,你們最關注的一件事就是搶火車票,然而12306的官方應用很難用,咱們模擬春運搶票的付款場景:sql
是什麼緣由致使這種問題呢?利用透視寶對主流移動應用進行診斷,發現如下幾個維度出現了問題:關鍵業務流程慢、頁面交互響應慢、登陸緩慢、支付緩慢失敗、圖片加載失敗等等。緣由可能有:兼容性問題、網絡問題、資源加載慢等狀況。影響結果:訂單成功率降低、支付成功率降低、用戶體驗很差、用戶流失……數據庫
你知道看起來不起眼的APP交互性能慢會形成多少用戶流失嗎?json
一項移動用戶調查顯示,60%的用戶會對加載時間超過 3 秒鐘的APP失去興趣,74%的受調查者表示等待時間不會超過 5 秒鐘,當遇到一個性能表現不好的APP應用時,1/3 的受訪者表示將轉向競爭對手的應用,性能問題會形成平均天天5%的用戶流失!後端
產品經理或運營同窗也許會但願經過用戶反饋來優化用戶體驗、改進產品,然而數據顯示這並不靠譜,下面再來看一下有多少用戶遇到問題會反饋給咱們的客服:緩存
200萬的用戶樣本中,透視寶監測到有22%的用戶遇到了糟糕的用戶體驗,卻只有2%的用戶會進行意見反饋,剩下的用戶要麼是默默忍受,要麼轉身離開。因此,咱們須要持續不斷的進行模擬用戶行爲測試,持續不斷的提高APP用戶體驗!性能優化
爲了及時、準確的發現APP的性能問題,爲APP提供改進和優化建議,雲智慧智能家居行業客戶基於如下關鍵業務環節:網絡
l 智能商城:在APP端嵌入H5頁面,靈活展現全部智能家居產品,經過商城查看產品詳情、下單與付款;
l 智能設備:展現設備遙控面板,能夠增長多個設備,並經過控制面板遙控智能家居設備。
對APP測評提出瞭如下要求:
Ø 經過同行業APP的橫向性能比較,瞭解行業用戶對性能的平均容忍度;
Ø 經過不一樣緯度的測評分析報告,爲APP改進和優化提供支撐依據;
Ø 經過測評準肯定位產品缺陷、問題,提高APP用戶體驗,提升業務營收;
Ø 經過測評分析優化APP性能,提高行業競爭力排名,最終提升產品競爭力;
針對客戶的行業特色和需求,咱們制定的測試方案以下:
一、 在參測產品APP端植入透視寶Smart SDK,進行客戶端真實用戶體驗數據的實時採集;
二、 經過監控寶對客戶產品和競品的服務接口質量按照重點地域進行監測;
三、 在150部手機上安裝參測產品,用不一樣帳戶對全部功能頁面進行反覆點擊,對關鍵業務流程:登陸、設備與商城頁面進行代碼級性能檢測。
在測試開始以前,先設定幾個小目標:
² 用1分鐘查找終端用戶與APP最熱門的交互視圖與最慢的交互視圖;
² 用3分鐘定位APP崩潰問題與緣由;
² 用1分鐘定位影響APP加載緩慢的緣由;
行業APP應用性能對比
首先,覈對客戶產品與競品APP相同的關鍵業務,如:設備、商城; 而後,經過抓包工具獲取客戶與競品APP關鍵業務的相關數據,如url接口、參數等;最後,使用監控寶API、網頁監控對設備接口與商城H5頁面進行監控,監控週期爲3天;通過對全部數據的響應時間進行加權平均獲取總體性能指標數據,具體以下圖:
從圖中咱們能夠看出:智能家居行業總體應用性能在13.81 s,而客戶產品(圖中藍色線)的總體應用性能的平均值卻遠高於競品性能,總體性能越差對終端用戶體驗的影響越大。
經過監控寶的監測點,按照客戶提供的主要業務區域進行各個產品頁面與API接口的區域用戶體驗監測,總體結果以下:
客戶產品(見中間截圖)在被測省份的總體訪問體驗基本在20 s以上,而競品4在被測省份的總體體驗基本在10 s如下。經過對比得出結論,客戶產品要想在競爭中脫穎而出,產品應用性能的優化已經迫在眉睫。
透視APP應用性能分析
通過一輪模擬測試,透視寶對客戶app給出了總體性能評分:
從評分可知,客戶產品問題主要集中在頁面響應時間過慢、產品崩潰率較高,另外有部分用戶出現http錯誤與網絡失敗的問題,具體到代碼級的問題總結一下:
一、慢交互:監測發現羣組聊天頁面加載緩慢:ImGroupChatViewController (羣組聊天) 平均耗時:1278s 出現一條慢的請求;
二、崩潰:150個終端用戶中有31個終端共發生了64次崩潰,崩潰最高的版本爲2.6.1。經過視圖看到:
miui..POWER_HIDE_MODE_ACTIVITY 在應用版本2.6.1中崩潰次數高達31次,影響用戶9人 com..uplus.ui.activity.WebActivity 在應用版本2.6.1中崩潰次數高達7次,影響用戶5人 com.*.ui.activity.ServiceActivity$10 在應用版本2.6.4中崩潰次數高達5次,影響用戶3人
三、頁面加載緩慢:多個行爲頁面加載緩慢,體驗糟糕,這些慢的視圖以下:
com..uplus.ui.activity.MyInfoActivity(個人錢包) 平均耗時:12s 受影響用戶數:80人 com..uplus.ui.activity.UPlusMainActivity(設備) 平均耗時:9s 受影響用戶數:65人 com..uplus.ui.activity.WebActivity(首頁) 平均耗時:6s 受影響用戶數:102人 com..uplus.ui.activity.LoginActivity(登陸) 平均耗時:4s 受影響用戶數:138人
第一個目標:用1分鐘查找終端用戶與APP最熱門的交互視圖與最慢的交互視圖。
在這張圖中可以直觀的看到:
執行過慢的視圖分別是ImGroupChatViewController (羣組聊天)、 LoginViewController(登陸)、ServiceTableViewController(服務表)、PersonalData(我的資料),執行時間均大於600ms,結合訪問次數與產品規劃可知,上述視圖也是用戶常常訪問的。
這是APP羣組聊天的界面,對ImGroupChatViewController (羣組聊天)進行深刻分析:
可以看到響應慢用戶的手機信號、cpu與內存信息以及頁面各個請求相關數據。通過1分鐘的分析發現:單個視圖的加載超過400ms即視爲慢交互,該視圖最慢的請求http://accesshall.mggame.com....執行時間爲1005ms,須要作相應的優化。
第二個目標:用3分鐘定位崩潰問題與緣由。
透視寶崩潰分析能幫助用戶追蹤移動應用崩潰的堆棧、進程等信息,從而快速定位並解決問題。首先,介紹的是本輪測試崩潰概覽:
本輪測試受崩潰影響的用戶有31位,崩潰次數爲64次,崩潰率最高的版本是2.6.1; 崩潰最高的設備是Samsung SM-G9008V、iPhone 6Plus,崩潰最高的系統版本是Android 5.0。
崩潰地區分佈:
受崩潰影響最多的地區是山東、河北、北京等地區。
崩潰問題統計:
本次測試受崩潰最多的類型爲:android.content.ActivityNotFoundException,對應的版本爲2.6.1,受影響用戶有9位、崩潰次數是31次,對該崩潰問題進行性能定位與緣由分析:
形成Crash的代碼爲:點擊com.imohoo.***.ui.first.GuideActivity$4時,發現處理行爲視圖:miui.intent.action.POWER_HIDE_MODE_ACTIVITY沒有響應,受影響的APP版本爲2.6.4,設備名稱是小米手機、操做系統是Android 4.4.4 以及相關的cpu使用與內存佔用數據。用戶在操做APP時出現崩潰,操做軌跡是「打開啓動頁」與「com.imohoo.shanpao.ui.first.GuideActivity$4」頁面交互後發生了Crash。
最終,咱們用了3分鐘定位到崩潰問題發生的終端用戶硬件信息、代碼線程反饋等信息。
第三個目標:用1分鐘定位影響用戶使用APP行爲加載緩慢的緣由。
透視寶用戶行爲分析可以根據用戶使用App時執行的每一個行爲動做,從行爲的角度來分析App的性能和用戶受影響的狀況,常見的如:加購物車、下訂單、結算等。首先看一下用戶行爲相關性能數據:
本次測試用戶使用最多、平均耗時最多的業務依次爲:設備、首頁、登陸等,平均耗時均超過了用戶可容忍時間2000 ms,列舉平均耗時較多的設備功能影響用戶相關的數據:
能夠看到:本次測試用戶遙控智能家電使用最多的終端設備爲:Samsung SM-G9008V,系統版本爲android 5.0,接入方式最多的是WIFI。影響設備運行緩慢的請求數據以下:
設備視圖com..uplus.ui.activity.UPlusMainActivity緩慢的請求主要是.net:7500/emuplus/secuag/common/appversion,耗時16466ms。針對緩慢請求從兩方面進行分解:一、對請求響應時間進行分解,排除網絡環境的緣由;二、經過該請求頁面直接到後端代碼、服務、數據庫進行詳細分析,並定位慢元素與慢SQL語句。
響應時間趨勢圖
PHP代碼追蹤圖
追蹤到後臺服務,咱們發現影響請求緩慢的緣由是mysql_query,響應時間達到5902.05ms:
最終定位到對應的SQL語句。此時,咱們用了1分鐘時間發現影響加載緩慢的最終緣由。
智能家居APP性能測試總結
1、首頁啓動速度:啓動過程當中作的事情越少越好(儘量將多個接口合併),不在UI線程上做耗時的操做(數據的處理在子線程進行,處理完通知主線程刷新界面),在合適的時機開始後臺任務(例如在用戶指引界面就能夠開始準備加載的數據),儘可能減少包的大小。優化方法:量化啓動時間,啓動速度模塊化。
2、頁面瀏覽速度:json的處理(iOS自帶的NSJSONSerialization庫以及經常使用第三方庫JSONKit以及SBJson),數據的分頁(後端數據多的話,就要分頁返回,例如網易新聞,或者 微博記錄),數據壓縮(大數據也能夠壓縮返回,減小流量,加快反應速度),內容緩存(例如網易新聞的最新新聞列表都是要緩存到本地,從本地加載,能夠緩存到內存,或者數據庫,根據狀況而定),延時加載tab(好比app有5個tab,能夠先加載第一個要顯示的tab,其餘的在顯示時候加載,按需加載),算法的優化(核心算法的優化,例若有些app 有個 聯繫人姓名用漢語拼音的首字母排序) 。
3、數據庫的優化:數據庫設計上面的重構,查詢語句的優化,分庫分表(數據太多的時候,能夠分不一樣的表或者庫)。
通過針對性的優化,客戶APP在崩潰、響應時間、網絡等方面獲得了很是好的性能提高,透視寶總體性能評分獲得了大幅度提高。
咱們還有更多更溫暖的體驗
今年11月,透視寶新增長業務拓撲功能,經過業務拓撲圖能夠對關鍵業務環節的性能信息進行實時展現,並對業務的健康度,應用,事務,數據庫,調用者和主機等關係到具體業務的性能數據進行綜合分析,確保業務健康和用戶體驗的持續提高。