Android優化實戰系列文章之WebView的加載速度優化

大家好,我是Ellen,好久沒寫博客了,最近項目中需要對WebView進行優化,因此這裏就總結一下筆者在WebView優化過程中遇到的問題以及解決思路,我相信你只要認真看完,一定會有許許多多的收穫。按照慣例我們先來上一張腦圖:

在這裏插入圖片描述

1.Android中WebView的加載過程

  我們先來通過一張圖看看WebView的加載過程:

在這裏插入圖片描述

  可以從圖中看到WebView在第一次啓動的時候是需要進行初始化的,然後經過和服務器溝通階段,此階段WebView一直白屏,接着纔會渲染出來,因此對於一個普通的用戶而言,經歷了以下幾個階段:

  • 1.交互無反饋
  • 2.到達新的頁面,頁面白屏
  • 3.頁面基本框架出現,但是沒有數據;頁面處於loading狀態
  • 4.出現所需的數據

  爲什麼WebViw加載沒有原生那麼快界面顯示出來呢?經過反覆查看上方WebView的加載過程,你會發現,WebView主要耗時是在初始化和服務器進行數據請求,在通過這兩個過程之後WebView纔會將界面渲染出來,那麼我們如何進行優化呢?

WebView優化思路:
1.讓WebView的初始化過程提前準備。
2.資源不讓WebView進行請求,在WebVie進行預備工作時候請求html數據(並行思維)

接下來,我們來看看如何實現這兩個思路:

2.讓WebView的初始化過程提前準備

  筆者這裏的思路就是當開啓應用進入到主界面時,就把WebView準備好,當其它界面需要用到時,就將這個準備好的WebView交給它,交給它的同時再去準備下一個,這樣預準備過程就悄無聲息的提前準備了,頁面就會加載的很快,但是隨即而來的是另外一個問題,那就是內存佔用問題,所以如果app裏面WebView的界面較多,建議採用複用思維(例如:使用複用池的思維進行復用)進行封裝。筆者這裏已經封裝了一套WebViewCachePool

感謝以下文章的指點:
WebView性能、體驗分析與優化(美團技術團隊)
有贊webview加速平臺探索與建設(三)——html加速(有贊技術團隊)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章