Flutter框架概覽

country5發表於2018-06-21
前言:進入新框架的開發前,有必要整體瞭解框架設計及特點,對該框架初步認識,此文對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資料的填充等,並且還負責把客戶端的事件傳遞到執行時中的程式碼。
轉載請註明出處
Email:linguowu0622@gamil.com
複製程式碼


相關文章