這篇文章主要介紹了Flutter與Android原生WebView測(cè)試分析的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Flutter與Android原生WebView測(cè)試分析文章都會(huì)有所收獲,下面我們一起來看看吧。
為永春等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及永春網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、永春網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Flutter 實(shí)現(xiàn) WebView
flutter 官方是沒有 WebView 組件的,不過強(qiáng)大的 flutter-community 論壇考慮到廣大開發(fā)者的需求,開發(fā)了 flutter_webview_plugin 插件,方便在 flutter 中使用使用 WebView。
集成方式很簡(jiǎn)單,在 pubspec.yaml 文件中:
dependencies: flutter: sdk: flutter flutter_webview_plugin: ^0.3.0+2
接下來所有的對(duì)比都是基于 Android 原生的 WebView 和 flutter_webview_plugin 插件,為了嚴(yán)謹(jǐn),并未對(duì)第三方 WebView 作對(duì)比。
測(cè)試手機(jī):小米8SE 系統(tǒng):Android 8.1.0
加載速度對(duì)比
測(cè)試網(wǎng)頁打開的速度,只需要獲取 WebView 在開始加載網(wǎng)頁和網(wǎng)頁加載完成時(shí)的時(shí)間戳,時(shí)間戳的差即為打開網(wǎng)頁的時(shí)間,我們分別在 Android 原生和 flutter 中的相應(yīng)位置打印 log:
webView?.webViewClient = object : WebViewClient() { override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { Log.d(TAG, "onPageStarted:" + System.currentTimeMillis()) super.onPageStarted(view, url, favicon) } override fun onPageFinished(view: WebView?, url: String?) { Log.d(TAG, "onPageFinished:" + System.currentTimeMillis()) super.onPageFinished(view, url) } } 復(fù)制代碼 flutterWebViewPlugin.onStateChanged.listen((state) { if (state.type == WebViewState.finishLoad) { print('finishLoad:' + DateTime.now().millisecondsSinceEpoch.toString()); setState(() { isLoad = false; }); } else if (state.type == WebViewState.startLoad) { print('startLoad:' + DateTime.now().millisecondsSinceEpoch.toString()); setState(() { isLoad = true; }); } });
為了使差異更明顯,我們選擇較為復(fù)雜的 新浪首頁 進(jìn)行加載的對(duì)比,為了減小網(wǎng)絡(luò)對(duì)加載速度的影響,我們讓手機(jī)連接同一個(gè)網(wǎng)絡(luò),分別進(jìn)行 10 次測(cè)試然后取平均值,另外,我們需要關(guān)閉 WebView 的緩存,防止緩存對(duì)加載速度產(chǎn)生影響:
webView?.settings?.cacheMode = WebSettings.LOAD_NO_CACHE
WebviewScaffold( key: _scaffoldKey, url: widget.url, clearCache: true, appCacheEnabled: false, . . . );
下面使筆者進(jìn)行 10 次測(cè)試所得到的數(shù)據(jù):
可以發(fā)現(xiàn),相同環(huán)境下 flutter_webview_plugin 的加載速度比 native WebView 略快,但是差異不明顯,基本可以忽略。
結(jié)論:flutter_webview_plugin 的加載速度比 native WebView 略快。
內(nèi)存占用對(duì)比
可以使用 AndroidStudio 自帶的 profiler 工具來進(jìn)行占用內(nèi)存的測(cè)試,我們?cè)?flutter 程序中同時(shí)集成調(diào)用 native WebView 和 flutter_webview_plugin 來打開淘寶首頁和新浪首頁的方法,在程序剛運(yùn)行的時(shí)候內(nèi)存占用如下圖:
然后用 WebView 打開淘寶首頁:
用 flutter_webview_plugin 打開淘寶首頁:
可以發(fā)現(xiàn),用 WebView 打開淘寶首頁內(nèi)存基本無變化,但是用 flutter_webview_plugin 打開淘寶首頁內(nèi)存有明顯的增加,且波動(dòng)較大。
結(jié)論:flutter_webview_plugin 相對(duì) native WebView 而言,占用內(nèi)存較大。
HTML5 兼容性對(duì)比
可以在 html5test 中對(duì)瀏覽器的兼容性進(jìn)行評(píng)分,通過測(cè)試發(fā)現(xiàn) native WebView 和 flutter_webview_plugin 的得分分別如下:
現(xiàn)在小米8SE手機(jī)上,native WebView 和 flutter_webview_plugin 的 html5 兼容性得分都是 501。
結(jié)論:native WebView 和 flutter_webview_plugin 的 html5 兼容性無明顯差異。
關(guān)于“Flutter與Android原生WebView測(cè)試分析”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Flutter與Android原生WebView測(cè)試分析”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前題目:Flutter與Android原生WebView測(cè)試分析
URL地址:http://jinyejixie.com/article16/iejigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站改版、服務(wù)器托管、App設(shè)計(jì)、標(biāo)簽優(yōu)化、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)