編輯:安卓省電與加速
目前webapp越來越多,體驗也越來越好,為了能夠更好的使用WebView展示出流暢的的頁面,可以從以下幾點做優化:
可能有人會說了,為什麼不做成native的呢,這樣就不用那麼的麻煩了。如果我需要加載的內容都是靜態的,當然做成native的是最好的,為什麼我們要使用WebView呢,因為它可以加載一些容易改變的內容,同時也方便制作多平台應用。
WebView可以優化的哪些地方呢?
開啟WebView的緩存功能可以減少對服務器資源的請求,一般使用默認緩存策略就可以了。
//設置 緩存模式 webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // 開啟 DOM storage API 功能 webView.getSettings().setDomStorageEnabled(true);
資源等文件(不需要更新)本地存儲,在需要的時候直接從本地獲取。哪些資源需要我們去存儲在本地呢,當然是一些不會被更新的資源,例如圖片文件,js文件,css文件,替換的方法也很簡單,重寫WebView的方法即可。
{ try { if (url.endsWith("icon.png")) { InputStream is = appRm.getInputStream(R.drawable.icon); WebResourceResponse response = new WebResourceResponse("image/png", "utf-8", is); return response; } else if (url.endsWith("jquery.min.js")) { InputStream is = appRm.getInputStream(R.raw.jquery_min_js); WebResourceResponse response = new WebResourceResponse("text/javascript", "utf-8", is); return response; } } catch (IOException e) { e.printStackTrace(); } return super.shouldInterceptRequest(view, url); }
- appRm為app資源管理器,讀取drawable,assets,raw下的資源,都是android系統的一些很簡單的函數調用。
- getInputStream的參數代表資源具體位置
- WebResourceResponse後的資源類型需要寫正確
有些時候我們會為我們的網站加入一些統計代碼,這些也可以精簡掉(自己使用的CNZZ的大概占的有10k左右),可以使用Charles對客戶端進行抓包查看。
准確的說,是減少同步操作的操作時間,盡量使用異步操作替代同步操作。如果服務端存在讀取數據庫和計算耗時的操作,盡量使用異步(ajax)進行操作,把原本的時間花在異步操作上。
舉個例子,A頁面到B頁面,A頁面實現登錄功能,B頁面展示主功能頁面,如果讓B頁面去進行用戶登錄信息驗證的話,B頁面加載時間會加長(數據庫查詢等操作),同時客戶端可能需要提供一個等待框(或進度條等)給用戶,那看看在A頁面使用異步操作的優勢吧:
怎麼讓用戶看不到WebView加載前的白色頁面呢?首次加載後頁面的跳轉可以用上面的步驟進行優化,可以提供給用戶一個很好的體驗,那加載的第一頁呢?我們需要WebView預加載頁面,這個該怎麼做到的呢?下面提供兩種方法:
使用FrameLayout簡單一些,兩種方法都是需要對WebChromeClient的onProgressChanged進行監聽,加載完畢進行頁面切換,如下:
webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress >= 100) { // 切換頁面 } } });
經過以上幾步的優化,一個流暢的webapp生成了。
這個是摩托羅拉ME600/MB300 樂蛙4.0UI商務版 省電流暢ROM ROM名稱:木子傾情打造ui系列之 商務版 ROM版本:2.3.7
麥芒5發布算起來也有比較久一段時間了,當然各位最擔心的自然是手機的使用時間和續航問題。怎麼才能省電呢?下面我們一起來看看吧! 在這幾天的使用時間裡
電量不夠用想必是每個使用智能手機用戶們的心頭之痛,因此如今有不少的手機廠商們開始盛行快充技術,它也得到了很多用戶的追捧。但是除了這些之外,在平時生活中我們該怎麼使用手機才
智能手機的快速發展讓手機的硬件有了很大的提升,不過這電池一直是大家都頭疼的,手機配置原來越高,這電池的續航時間卻一