經典面試題26 - 如何優化移動App性能

問題

據報告稱64%的智能手機用戶期待頁面在4秒內加載完成,性能已經成爲用戶體驗的核心部分之一,請問如何優化移動App性能?

解答

首先,所有相關人員把高性能作爲核心考量的標準之一是不可或缺的,統一思想認識才能制定流程並執行下去,這樣才能及早發現性能問題並解決。

其次性能的優化不應只在開發流程完成以後才進行,而是設計師和開發者在產品設計階段就要聯袂合作,完成對設計方案的評審,避免開發者在開發階段發現才設計的不合理之處,從而反覆修改設計,引起相關參與方不滿。

在進行優化前,要確定和遵守可量化的優化的目標,如應用首頁請求的大小不超過500kb,每個請求延時不超過2s等,但這不是固定的,具體的要根據業務需求和用戶需求來確定。

還有在開發的過程中也要開發者經常進行性能的測試,避免錯過糾正的最佳時機。

上述兩點的角度是在流程上,後面我們在技術緯度分析。

一般來說,移動應用服務有兩部分組成:客戶前端和服務器後端,下面就從這兩個方面分析。

客戶前端優化

  • 圖片緩存

緩存是把部分剛使用過的資源存儲在內存或本地硬盤,可存儲的內容包括圖片,文件和網頁等。使用緩存避免網絡傳輸可以很好地改善用戶體驗。
根據不同的場景使用被壓縮,大小適合的圖片對於性能提升也是很顯著的。

  • 減少網絡請求

使用較少的網絡請求獲取資源對於性能優化也有幫助,因爲每次建立網絡連接是有成本的。 注意在HTTP 2.0協議中支持複用已有網絡連接傳輸數據(多路複用)。

  • 加載動畫

一般來說,用戶意識到的加載速度比事實慢15%,在代碼優化性能的同時,可以嘗試在界面設計上調整,改善用戶的體驗。
如應用在等待後臺返回數據的時候,給用戶一個可見的反饋,會讓用戶感覺快很多。
有時候代碼層面夜以繼日的優化,不如在設計層面些許的調整對用戶更有價值。

  • 按需加載

如果應用需要加載大量數據,可以嘗試把數據分割按需加載,防止用戶等待時間過久。
有時候可以嘗試預加載思路,這樣在用戶使用數據的時候不用等待。

  • 離線模式

在一些網絡不穩定的地區,用戶會經常在使用應用的過程中遇到丟失信號的場景,聰明的做法是提醒用戶當前編輯無法完成,且允許用戶把當前編輯的數據保存在本地,等網絡恢復的時候可繼續操作。

  • 工具調優

選擇合適的工具進行移動應用的性能測試也是不可或缺的, Android應用可以嘗試工具 Monkop

  • 內置APM

APM (application performance monitoring) 應用性能監測用來監視和管理應用的性能和可用性,一方面可以監控和用戶體驗相關的性能,如頁面加載時間,另一方面是系統層面的資源消耗。

服務後端優化

  • API設計

前端和後端的交互一般通過API進行,良好的API的設計可以讓交互進行更順暢,但不合適的API會拖性能的後退。

很多項目的API不是爲移動產品而設計,複用一些桌面Web已有的API接口,這樣不僅造成冗餘數據的傳輸,有時候還要拼接多個API來完成相關需求。

  • 緩存

主要是指提高後端數據準備的速度的緩存思路,如Memcached,CDN加速等。

待續...

更多

經典面試100題 - 持續更新中

獲取更多內容請關注微信公衆號豆志昂揚:

  • 直接添加公衆號豆志昂揚
  • 微信掃描下圖二維碼;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章