高效的 UI 渲染框架,它以更低的資源消耗來構建十分流暢的UI介面

2019-09-17     星集

Graver

Graver 是一款高效的 UI 渲染框架,它以更低的資源消耗來構建十分流暢的 UI 介面。

Graver 獨創性的採用了基於繪製的視覺元素分解方式來構建介面,得益於此,該框架能讓 UI 渲染過程變得更加簡單、靈活。

功能特點

  • 性能表現優異

Graver 在 FPS、CPU、Memory 各方面的指標均表現優異。

  • 「一站式」異步化

Graver 從文本計算、樣式排版渲染、圖片解碼,再到繪製,實現了全程異步化,並且是線程安全的。使用 Graver 可以一站式獲得全部性能優化點。

  • 性能消耗的「邊際成本」幾乎為零

Graver 渲染整個過程除畫板視圖外完全沒有使用 UIKit 控制項,最終產出的結果是一張位圖(Bitmap),視圖層級、數量大幅降低。

  • 渲染速度快

Graver 並發進行多個畫板視圖的渲染、顯示工作。得益於圖文混排技術的應用,達到了內存占用低,渲染速度快的效果。由於排版數據是不變的,所以內部會進行緩存、復用,這又進一步促進了整體渲染效率。Graver 既做到了高效渲染,又保證了低時延頁面加載。

  • 以「少」勝「繁」

Graver 重新抽象封裝 CoreText、CoreGraphic 等系統基礎能力,通過少量系統標準圖形繪製接口即可實現複雜介面的展示。

  • 基於位圖(bitmap)的輕量事件交互系統

如上述所說,介面展示從傳統的視圖樹轉變為一張位圖,而位圖不能響應、區分內部具體位置的點擊事件。Graver 提供了基於位圖的輕量事件交互系統,可以準確識別點擊位置發生在位圖的哪一塊「繪製單元」內。該「繪製單元」可以理解為與我們一貫使用的某個具體UI控制項相對應的視覺展示。使用 Graver 為某一視覺展示添加事件如同使用系統 UIButton 添加事件一樣簡單。

  • 全新的視覺元素分解思路

Graver 一改介面編程思路,與傳統的通過控制項「拼接」、「添加」,視圖排列組合方式構建介面不同,它提供了十分靈活、便捷的接口讓我們以「視覺所見」的方式構建介面。

系統需求

  • iOS 9.0 +
  • Xcode 9.0 +

如何運行示例項目

在 Clone 項目後,執行 pod install ,然後打開 GraverDemo.xcworkspace 。

安裝

CocoaPods 在 Podfile 中添加 pod 'Graver' ,然後運行 pod install 即可。

開源地址:

https://github.com/Meituan-Dianping/Graver

更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。

文章來源: https://twgreatdaily.com/zh-tw/McCGQG0BJleJMoPMJR56.html