要想了解 Flutter,你必須先了解它的底層圖像渲染引擎 Skia。因為,F(xiàn)lutter 只關(guān)心如何向 GPU 提供視圖數(shù)據(jù),而 Skia 就是它向 GPU 提供視圖數(shù)據(jù)的好幫手。
Skia 是一款用 C++ 開發(fā)的、性能彪悍的 2D 圖像繪制引擎,其前身是一個向量繪圖軟件。2005 年被 Google 公司收購后,因為其出色的繪制表現(xiàn)被廣泛應用在 Chrome 和 Android 等核心產(chǎn)品上。Skia 在圖形轉(zhuǎn)換、文字渲染、位圖渲染方面都表現(xiàn)卓越,并提供了開發(fā)者友好的 API。
目前,Skia 已然是 Android 官方的圖像渲染引擎了,因此 Flutter Android SDK 無需內(nèi)嵌 Skia 引擎就可以獲得天然的 Skia 支持;而對于 iOS 平臺來說,由于 Skia 是跨平臺的,因此它作為 Flutter iOS 渲染引擎被嵌入到 Flutter 的 iOS SDK 中,替代了 iOS 閉源的 Core Graphics/Core Animation/Core Text,這也正是 Flutter iOS SDK 打包的 App 包體積比 Android 要大一些的原因。
底層渲染能力統(tǒng)一了,上層開發(fā)接口和功能體驗也就隨即統(tǒng)一了,開發(fā)者再也不用操心平臺相關(guān)的渲染特性了。也就是說,Skia 保證了同一套代碼調(diào)用在 Android 和 iOS 平臺上的渲染效果是完全一致的。

image.png

image.png