Hello world示例,打印字符串“Hello World!”:
1,無橋梁層
React Native、Weex等技術都是跨終端的框架,但其性能和原生app差距很大。這是由於它們的工作原理:
React Native,Weex等技術都有壹個橋接層,所以界面渲染會慢壹些。因為UI渲染非常頻繁,基本上很難避免卡頓,性能和用戶體驗都和原生代碼不壹樣。這正是顫振的優勢:
Dart可以編譯成不同平臺的本地代碼,這樣Flutter就可以直接和平臺通信,不需要橋接層,自然性能會更快。
2.編譯並執行
JavaScript是解釋執行,Dart是編譯執行,所以誰的性能好就壹清二楚了。
3.顫振引擎虛擬機
Flutter依靠Flutter引擎虛擬機在iOS和Android上運行。Flutter引擎用C/C++編寫,開發者通過Flutter框架直接與API進行交互,因此具有輸入延遲低、UI渲染幀率高的特點。除了這個特性,Flutter還提供了自己的小部件,這些小部件是使用受React啟發的現代框架構建的。中心思想是使用小部件來構建UI。
小部件根據它們當前的配置和狀態來描述它們的視圖。當小部件的狀態發生變化時,小部件將重新構建其描述,框架將根據之前的描述進行區分,以確定底層渲染樹從壹種狀態過渡到下壹種狀態所需的最小變化。可以直接描繪在OS平臺提供的畫布上,也就是把壹些核心類庫直接放在虛擬機裏,調用起來更快。
從其系統結構可以看出,與Android類似的ART(Android Run Time)虛擬機也采用了AOT(advanced Time)技術,在APP安裝時會編譯成機器語言,不會被解釋和執行,從而優化了APP的性能。
4.自帶渲染引擎。
Flutter使用谷歌自己的Skia渲染引擎,而Android自帶Skia引擎。Flutter還會在iOS平臺上將Skia引擎打包成APP,從而實現高效渲染。React Native通過橋接層訪問原生UI,所以頻繁的操作容易出現性能問題。
綜上所述,Flutter是壹個性能最接近原生代碼的開發框架,未來將是構建Google Fuchsia應用的主要方式。唯壹的問題是,妳需要學習壹門新的語言:Dart,對於有Java或C#語言基礎的程序員來說更容易。