古詩詞大全網 - 成語故事 - 為什麽Flutter開發APP性能最接近原生,前端程序員請關註

為什麽Flutter開發APP性能最接近原生,前端程序員請關註

Flutter是谷歌公司推出的跨終端的開發框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發布,目前的最新版本是1.5,它采用的開發語言是Dart,Dart也是谷歌開發的計算機編程語言,語法類似C,是編譯型語言:

hello world例子,打印字符串“Hello World!”:

1、沒有橋接層

React Native、Weex等技術都是跨終端的框架,然而性能跟原生App存在很大差距。這是由於它們的工作原理決定的:

React Native、Weex等技術多了壹個橋接層,所以界面渲染會慢壹些,由於UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗跟原生代碼有差距。而這恰恰是Flutter的優勢所在:

Dart可以被編譯成不同平臺的本地代碼,讓Flutter不通過橋接層直接跟平臺通信,自然性能會快壹些。

2、編譯執行

JavaScript是解釋執行的,Dart是編譯執行的,性能誰好壹目了然。

3、Flutter Engine虛擬機

Flutter是依靠Flutter Engine虛擬機在iOS和Android上運行的,Flutter Engine使用C/C++編寫,開發人員通過Flutter框架直接和API在內部進行交互,所以具有輸入低延遲和UI渲染高幀速率的特點。除了這特點之外,Flutter還提供了自己的小部件,Flutter小部件是使用從React獲取靈感的現代框架構建的。 中心思想是您使用小部件構建UI。

窗口小部件根據其當前配置和狀態描述了它們的視圖。 當窗口小部件的狀態發生更改時,窗口小部件會重建其描述,框架將根據前面的描述進行區分,以確定底層呈現樹從壹個狀態轉換到下壹個狀態所需的最小更改。可以直接在OS平臺提供的畫布上進行描繪,也就是壹些核心類庫直接放到虛擬機裏面,調用起來更快。

從它的系統結構可以看出,類似安卓的ART(Android Run Time)虛擬機,同樣采用AOT(Ahead of TIme)技術,會在APP安裝時就編譯成機器語言,不再解釋執行,從而優化了APP運行的性能。

4、自帶渲染引擎

Flutter使用谷歌自己的Skia渲染引擎,而Android系統自帶Skia引擎,iOS平臺上Flutter也會把Skia引擎打包到APP中,從而實現了高效渲染。而React Native通過橋接層訪問原生UI,操作頻繁就容易出性能問題。

綜合所述,Flutter 是性能最接近原生代碼 的壹種開發框架,未來也會是構建谷歌Fuchsia應用的主要方式,前途不可限量,唯壹的問題就是需要學習壹門新的語言:Dart,而有Java或者C#語言基礎的程序員會比較容易學習。