非死book經驗:如何保證不同網絡環境下的應用體驗

jopen 10年前發布 | 5K 次閱讀 Facebook

在剛剛結束的@Scale 2014大會上,非死book分享了關于移動應用適配方面的演講,High Scalability在相關演講的基礎上進行了整理。如何保證移動應用在不同的網絡環境、不同的屏幕上都有良好的用戶體驗一直是個難題,而非死book有遍及全球的用戶,他們一直致力于提高用戶體驗,在大會上,非死book重點從團隊、技術方面分享了他們的經驗。

一 開始,非死book的應用只針對擁有高配置設備的用戶,在低配置設備上,應用體驗非常糟糕。而根據調查顯示,很多非死book用戶使用的手機都是 在2011年左右生產、雙核心、內存小于1GB。緊接著,為了滿足這部分用戶的需求,非死book專門開發了單獨的應用,這些應用在動畫切換等方面都 做了特殊處理。對于小屏幕的手機,非死book也專門設計了適配的應用。根據API等級、屏幕大小的不同,非死book應用有20多個不同的 APK(Android)。

在團隊方面,非死book以產品為中心來組織團隊。每個產品都對應一個單獨團隊,這個團隊負責保證產品的性能以及可靠性。另外會有單獨的核心團隊負責發現、分析并解決性能方面的問題。核心團隊和產品團隊各司其職,互相促進。

由于地區的差異,非死book用戶的網絡環境各不相同,所以訪問非死book應用的延時也各不相同。為了避免由于網絡延遲而影響用戶體驗,非死book主要做了三方面的工作,具體如下:

  1. 減小圖片大小(使用WebP格式的圖片)
    大 部分的非死book應用數據都是圖片,因此減少圖片的大小就可以較少數據的下載量,從而加快下載速度,這一點在高延遲的網絡環境下非常重要。 非死book返回給客戶端的圖片都做了壓縮處理,圖片壓縮方面業內主要使用gzip壓縮,常見的服務器都支持gzip壓縮。另外,非死book大 規模使用了WebP格式的圖片,WebP是谷歌推出的一種新的圖片格式,可以將圖片大小減少40%,目前淘寶也有使用這種格式的圖片。WebP不僅可以大 幅度減少圖片大小,而且還支持透明度和動畫。對于一些不支持WebP的設備,非死book會在客戶端把它轉碼為JPEG格式的圖片。

    前不久,非死book也贊助了來自Mozilla實驗室的JPEG圖像編碼器項目mozjpeg,mozjpeg可以在不降低圖像質量且兼容主流的解碼器的情況下,提供產品級的JPEG格式編碼器來提高壓縮率以減小JPEG文件的大小。感興趣的讀者可以嘗試使用。

  2. 網絡質量檢測
    非死book 在每個響應的的HTTP頭中都提供了RTT(Round Trip Time)估算,客戶端根據平均吞吐量和RTT時間來確定網絡連接的質量。網絡連接質量會大致被評為幾個級別:優秀、良好、一般、差。開發人員針對不同的 網絡連接級別來調整相應的功能,比如增加/減少壓縮調整并行的請求數量、禁止/允許自動播放視頻、預加載內容。另外,非死book還專門開發了Air Traffic Control以支持不同網絡環境下的配置文件模擬。

  3. 預加載內容
    預加載可以使用空閑時間來 預先下載/加載用戶接下來很可能會瀏覽的資源,在高延遲的網絡環境下,內容預加載可以減少用戶的等待時間。比如在網絡連接不好的情況下,非死book 會在應用啟動時加載基礎數據。使用預加載內容方案時要注意不要讓后臺網絡請求阻塞正常的網絡請求,這塊非死book主要使用了一個優先隊列來存儲請 求。

目前,相關的演講也已經發布到了油Tube,讀者可以自行觀看。

via InfoQ

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!