Flutter 開發大全

Skia是個2D向量圖形處理函數庫

CPU 渲染稱之爲軟件繪製(關閉硬件加速時使用該引擎,開啓硬件加速時使用OpenGL), Android CPU 渲染引擎框架爲 Skia, 它是一款在底端設備上呈現高質量的 2D 跨平臺圖形框架, Google 的 Chrome、Flutter 內部都有使用這個圖形渲染框架.

Skia主要做的事情:1、界面繪製(Canvas,onDraw);2、圖像處理(Canvas);3、圖像編解碼(Bitmap);4、webview軟件渲染;5、字體解析

包含字型、座標轉換,以及點陣圖都有高效能且簡潔的表現。不僅用於Google Chrome瀏覽器,新興的Android開放手機平臺也採用skia作爲繪圖處理,搭配OpenGL/ES與特定的硬體特徵,強化顯示的效果

自2005年Skia被Google收購後,一直相當神祕低調,直到2007年初,Skia GL相關的程式碼才被揭露,作爲Google Android平臺的圖形引擎,稍候的Google Chrome瀏覽器也採用Skia引擎。

隨着Android與Chrome (開放版本稱爲"Chromium")兩大專案公佈程式碼後,skia也一併公開原始程式碼,以Apache License v2釋出(注意,這意味着與GPLv2授權不相容) ,而Android與Chrome的程式碼庫中都有一份[skia]的複製,因需求不同,做了部份的修改,比方說Chrome專案底下的 [chrome/trunk/src/skia],

需要注意的是,Skia本身是不涉及底層環境,如Linux Framebuffer或Gtk+銜接的處理,這也是何以Android (透過Linux Framebuffer)與Chrome (開發中的Linux版本使用Gtk+)需要提供一份修改,以便系統接軌。

Skia 是一款用 C++ 開發的、性能彪悍的 2D 圖像繪製引擎,其前身是一個向量繪圖軟件。2005 年被 Google 公司收購後,因爲其出色的繪製表現被廣泛應用在 Chrome 和 Android 等核心產品上。Skia 在圖形轉換、文字渲染、位圖渲染方面都表現卓越,並提供了開發者友好的 API。

目前,Skia 已然是 Android 官方的圖像渲染引擎了,因此 Flutter Android SDK 無需內嵌 Skia 引擎就可以獲得天然的 Skia 支持;而對於 iOS 平臺來說,由於 Skia 是跨平臺的,因此它作爲 Flutter iOS 渲染引擎被嵌入到 Flutter 的 iOS SDK 中,替代了 iOS 閉源的 Core Graphics/Core Animation/Core Text,這也正是 Flutter iOS SDK 打包的 App 包體積比 Android 要大一些的原因。

底層渲染能力統一了,上層開發接口和功能體驗也就隨即統一了,開發者再也不用操心平臺相關的渲染特性了。也就是說,Skia 保證了同一套代碼調用在 Android 和 iOS 平臺上的渲染效果是完全一致的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章