Flutter框架概覽

前言:進入新框架的開發前,有必要總體瞭解框架設計及特色,對該框架初步認識,此文對Flutter框架進行淺顯梳理,以備查閱;
Flutter框架
 
從該架構圖可知,Flutter框架可分爲Framework層和Engine層;
Flutter Framework: 整個框架層都是用Dart語言實現,該層提供一套基礎庫, 用於處理動畫、繪圖和手勢等。而且基於繪圖封裝了一套 UI組件庫,而且細分爲兩種風格的組件
 
Materail : Android風格的Widget,包含如下幾個大類
  1. App基礎結構和導航類型(Scaffold,Appbar,BottomNavigationBar等)
                


  2. Buttons(懸浮按鈕,菜單按鈕等)

  3. 輸入和選擇器(Checkbox,Radio,Switch等)

  4. 對話框,面板

  5. 佈局
  
 
Cupertino: IOS風格的Widget,主要包含:
CupertinoTabBar,CupertinoPageScaffold,CupertinoTabScaffold,CupertinoTabView
 
Flutter Engine: 這是一個純 C++實現的框架層,包含了 Skia引擎(高性能渲染引擎)、Dart運行環境、文字排版引擎等。它能夠以 JIT、JIT Snapshot 或者 AOT(預先編譯)的模式運行 Dart代碼。AOT直接將Dart源碼編譯成了本地字節碼,沒有了解釋執行的過程,提高執行性能。和Java顯著不一樣的是Dart的"線程"(Isolate)是不共享內存的,各自的堆(Heap)和棧(Stack)都是隔離的,彼此之間經過消息通道來通訊。因此,Dart不存在數據競爭和變量狀態同步的問題,整個Flutter Framework Widget的渲染過程都運行在一個isolate中,在代碼調用 dart:ui庫時,提供 dart:ui庫中 Native Binding 實現。 這個運行時還控制着 VSync信號的傳遞、GPU數據的填充等,而且還負責把客戶端的事件傳遞到運行時中的代碼。
 
  轉載請註明出處
From crash_coder linguowu linguowu0622@gamil.com
相關文章
相關標籤/搜索