成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

對比Flutter,對比構(gòu)成

Flutter 與 iOS 原生 webView 對比

本文對比的是 UIWebView、WKWebView、flutter_webview_plugin(在iOS中使用的是WKWebView)的加載速度,內(nèi)存使用情況。

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、漾濞網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為漾濞等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

測試網(wǎng)頁打開的速度,只需要獲取 WebView 在開始加載網(wǎng)頁和網(wǎng)頁加載完成時的時間戳,時間戳的差即為打開網(wǎng)頁的時間

為了使差異更明顯,我們選擇較為復(fù)雜的 新浪首頁 進(jìn)行加載的對比,為了減小網(wǎng)絡(luò)對加載速度的影響,我們讓手機(jī)連接同一個網(wǎng)絡(luò),分別進(jìn)行 10 次測試然后取平均值,另外,我們需要關(guān)閉 WebView 的緩存,防止緩存對加載速度產(chǎn)生影響

下面使筆者進(jìn)行 10 次測試所得到的數(shù)據(jù)

結(jié)果讓我有點驚訝,一直以為 WKWebView 會是個王者。結(jié)果看,速度上 WKWebView 略慢一點,不過總體差異不大(該結(jié)果僅僅是測試新浪的結(jié)果,僅供參考啦)

在這里,筆者又加了一個測試,嘗試記錄從 viewController 的 viewDidLoad 到 webview 的 didFinish 時間,測試了新浪的數(shù)據(jù),如下:

UIWebViewA : 4970、3808、3815、4250、3556 avg(4079.8) (加載完所有頁面)

UIWebViewB : 4103、3124、3070、3256、2835 avg(3277.6)(加載sina完畢)

WKWebView : 3672、3032、2892、2912、2739 avg(3049.4)

flutter_webView : 4532、3901、4310、3496、3378 avg(3923.4)

其中可以看到,webView 有兩行,UIWebViewB 的數(shù)據(jù)就是加載 sina 主站的時間;UIWebViewA 的數(shù)據(jù)是因為在加載完 sina 主站之后,新浪又加載了一個 ,所以導(dǎo)致總時間延長,不過即使按照 UIWebViewB 的數(shù)據(jù)來比較,也是 wkWebView 略勝一籌。

此處可以看出 flutter_webView 使用的是 wkwebView,所以它吃虧的主要原因是 flutter 包了一層。

結(jié)論:

速度(didStart - didFinish) UIWebView flutter_webview WKWebView

速度(viewDidLoad - didFinish)WKWebView UIWebView flutter_webview

這里查看內(nèi)存使用的是 xcode 的 debug session 中的 memory。

首先看之前測試時,連續(xù)打開十次新浪的內(nèi)存情況

接著我們在看一下打開淘寶首頁的內(nèi)存情況

從圖上可以看出,WKWebView 在內(nèi)存方面有很大的優(yōu)勢啊,UIWebView 的內(nèi)存是真的傷啊,然后 debug 看了一下 flutter_webView,他使用的就是原生的 webView 。

他相比較原生 WKWebView 的內(nèi)存開銷稍大一點,從測試表現(xiàn)來看,一般大個 30 MB 左右。

結(jié)論:內(nèi)存 WKWebView flutter_webview UIWebView

可以在 html5test 中對瀏覽器的兼容性進(jìn)行評分,通過測試發(fā)現(xiàn)得分分別如下

因為 flutter 里使用的就是 WK,所以和原生的 WKWebView 一樣都是 444 分,比 UIWebView 的 437 略勝一籌

結(jié)論:兼容性 WKWebView = flutter_webview UIWebView

UIWebView : 速度相比較 WKWebView 稍快一點,但是內(nèi)存是一大硬傷,所以只要條件允許,就不推薦使用了

WKWebView : 速度略慢一點,不過差別不大,總體可以接受。是比UIWebView更好的選擇,推薦使用。

flutter_webView_plugin :在iOS中使用的就是原生的WKWebView,所以總體和 native WKWebView 表現(xiàn)差不多。如果是混編項目中,因為它被包了一層,所以頁面加載上存在一定的劣勢,所以混編項目中仍然推薦使用 WKWebView。不過如果從多端考慮、以及項目可遷移等,那么使用也未嘗不可,就是維護(hù)成本要增加一些,需要維護(hù)兩套 webView。這個就需要根據(jù)自己的情況自己取舍了。

Android原生、ReactNative、Flutter對比

首先從三者不同的設(shè)計理念對比,主要有三部分UI顯示流程、狀態(tài)更新機(jī)制、編譯流程

Java文件編譯成Class,然后被dex工具編譯成dex最終打包成APK文件,隨后通過adb命令安裝到手機(jī)中Java文件發(fā)生変化,上述流程需要重新來一遍,安裝到手機(jī)中,才能看到最終效果

選擇Flutter原因(性能角度對比跨平臺)

Flutter 是 Google 2018 年公開發(fā)布的一個移動 App 開發(fā)方案,通過 Flutter 前端開發(fā)者就能夠開發(fā)出真正意義上的原生 App。

選擇 Flutter 并不是為了代替 iOS 或者 Android,而是做一個技術(shù)互補(bǔ),比如,F(xiàn)lutter 負(fù)責(zé)業(yè)務(wù)功能,而 iOS 和 Android 則負(fù)責(zé)部分的底層交互提供服務(wù)給到 Flutter 應(yīng)用。

【深入解析】跨端框架的核心技術(shù)到底是什么?

這篇文章從前端技術(shù)核心(虛擬機(jī),渲染引擎)的角度講解跨端框架。

Android原生和Flutter使用過程的差異對比(二)

1、常用布局的對比

使用下來其他組件大致還算方便,但是相對布局而言使用便利程度上Android原生完勝,ConstraintLayout內(nèi)部的所有子View可以設(shè)置互相之間的位置依賴關(guān)系。

而Flutter的Stack組件內(nèi)部的Children只能通過外層包裹 Align后 固定位置,比如 Alignment.topLeft、Alignment.bottomRight 等。遇到復(fù)雜的堆疊布局需要通過外層包裹 Positioned 組件后設(shè)置固定的 top 和 left 距離以達(dá)到效果,內(nèi)部子組件之間無法設(shè)置位置關(guān)聯(lián)關(guān)系。

2、一些常用屬性設(shè)置上的差異:

Margin外邊距

Android:直接在布局文件對View設(shè)置android:layout_marginStart、android:layout_marginTop

Flutter:需嵌套 Container 組件并在內(nèi)部設(shè)置具體的 margin 值

Padding內(nèi)邊距

Android:TextView、ImageView、各種Layout都可以直接在屬性上設(shè)置android:paddingStart

Flutter:需嵌套 Padding 組件并在內(nèi)部設(shè)置具體的值

組件的可見性

Android:每個view都可以通過setVisibility來設(shè)置可見、隱藏或者隱藏但占位

Flutter:沒有單獨設(shè)置組件是否顯示的api,只能通過 bool 值控制是否添加該組件

事件監(jiān)聽

Android:常規(guī)的setOnClickListener和setOnLongClickListener設(shè)置單擊和長按事件

Flutter:在需要添加事件監(jiān)聽的組件外層嵌套 InkWell 或 GestureDetector 并設(shè)置 onTap 等

3、生命周期

Android:

Activity和Fragment各自有完整的生命周期鏈路onCreate、onStart、onResume、onPause、onDestroy等

Flutter:

萬物皆組件,組件繼承 WidgetsBindingObserver 并重寫 didChangeAppLifecycleState 函數(shù)進(jìn)行監(jiān)聽

退回桌面依次執(zhí)行inactive 》= paused,此時界面不可見用戶不可操作,從桌面重新進(jìn)入app執(zhí)行resumed,狀態(tài)較少如需在某些條件下觸發(fā)特定操作可能要找別的方案,比如發(fā)通知之類的

本文名稱:對比Flutter,對比構(gòu)成
分享鏈接:http://jinyejixie.com/article4/dsecgoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、App開發(fā)品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、商城網(wǎng)站、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
武义县| 永德县| 大洼县| 娄底市| 枣庄市| 道孚县| 韶关市| 泽库县| 南康市| 彰化县| 临沭县| 福贡县| 宽甸| 蕲春县| 西吉县| 德清县| 洛阳市| 潮安县| 雷波县| 浦北县| 会昌县| 平乡县| 资兴市| 兰西县| 万荣县| 隆子县| 安徽省| 平泉县| 封丘县| 土默特右旗| 济宁市| 镇原县| 沁源县| 南靖县| 广河县| 定兴县| 凤凰县| 雷州市| 县级市| 玛多县| 社会|