當前位置:
首頁 > 知識 > Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

【CSDN 編者按】去年Google 推出了 Flutter ,其目標是為了解決移動中的兩個重要問題:一是實現原生應用的性能和與平台的集成,二是提供一個多平台,可移植的 UI 工具包來支持高效的應用開發。

那麼它底層實現架構是怎麼樣的呢?一來看看吧。

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

Android 的前生今世

Android 系統作為全球第一大系統,基於 Java 開發的移動端有著諸多的性能優勢。

但由於2018年前 H5 的性能瓶頸和 React-Native 的一系列缺點(動畫性能、第三方依賴、邏輯上的額外開銷、調試的困難、不能完全屏蔽原生平台等)導致業界對跨平台開發失去信心。

直到 2018 年 10 月 Google 推出首個 Flutter 跨平台解決方案,打破整個移動開發的方向。

為什麼 Flutter 成為 Android 方向標

Flutter 有以下優點:

  1. 跨平台性:

    Flutter 基於圖像繪製引擎進行渲染,在不同平台下繪製效果是絕對一致的,能做到真正的跨平台,一處寫處處運行。
  2. 性能優異性:

    不同於 H5 通過 DOM 渲染 和 RN 映射組件,Flutter 直接基於 Native 進行繪製,在性能上完全能超過原生。
  3. 熱重載性:

    Android 原生開發時會遇到「編譯-打包-安裝」這三部曲。開發效率遲遲得不到提升。熱重載技術在 Flutter 內完美體現。

Flutter 詳細介紹

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

Flutter 架構圖

  1. Dart 語法編譯

  2. Dart 是一種強類型、跨平台的客戶端開發語言。具有專門為客戶端優化、高生產力、快速高效、可移植易學的風格。Dart 主要由 Google 負責開發和維護。
  3. Flutter 插件

  4. Flutter 使用的 Dart 語言無法直接調用 Android 系統提供的 Java 介面,這時就需要使用插件來實現中轉。Flutter 官方提供了豐富的原生介面封裝。
  5. Skia 圖像處理引擎

  6. 2005 年 Skia 圖像處理引擎成立,用來展示 Chrome 火狐 和其他 Google 自家的產品使用。2007 年 第一個 Android 系統問世,於是 Google 開發者將 Skia 移植到 Android 平台。Skia 作為一個 2D 的圖形系統,包括繪圖、渲染、顯示圖片都是用 Skia 完成。

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

7.Skia 引擎詳解圖:

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

為什麼 Flutter 會實現三大特性

Flutter 實現以下三大特性:

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

跨平台

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

性能優異

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

渲染流程

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

React 渲染與 Flutter 渲染相同點

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

React 渲染與 Flutter 渲染不同點

  1. 繪製樹:ReactNative 基於 ReactShadow 的鏈式結構在內存中形成一個虛擬的 Dom 樹,Flutter 是通過引擎實現不同圖層的渲染方式。
  2. 機制不一樣:ReactNative 最終被反射成原生控制項,而 Flutter 是底層通過引擎直接渲染,不存在映射的說法。

Flutter 渲染

在 Flutter 界面渲染過程分為三個階段:布局、繪製、合成,布局和繪製在 Flutter 框架中完成合成則交由引擎負責。

Google 為什麼以 Flutter 作為原生突破口?| 技術頭條

Flutter優勢

在 Flutter 的響應式框架中,控制項樹中的控制項直接通過可移植的圖形加速渲染引擎、高性能的本地 ARM 代碼進行繪製,不再需要通過虛擬 DOM 或虛擬控制項、真實 DOM 或平台控制項這些中間對象來繪製。

Flutter 響應式框架通過「無中間商賺差價」的?式直接利?硬體的所有性能,所以正如前?所說的,Flutter 應?的性能比原生 App 更加優秀。

相對於幾大跨平台框架,個人還是很看好 Flutter 的。畢竟是 Google 的親兒子嘛,還是可以先入坑的,自己動手寫一個 Flutter App 出來。在不同設備上跑一下,自己體驗一下。


來源:https://juejin.im/post/5c91f0f25188256b7463868e

聲明:本文經作者授權轉載,如需轉載請聯繫作者,責編伍杏玲。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

Git 最佳範例
蘋果的困境源於優質移動應用的垮台嗎?

TAG:CSDN |