

GitHub - Meituan-Dianping/Graver: Graver 是一款高效的 UI 渲染框架,它以更低的资...
source link: https://github.com/Meituan-Dianping/Graver
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md
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
即可。
许可证
Graver 使用 Apache Public License 2.0 许可证。
更新日志
相关文章
关于 Graver 的发展背景和过程,可参考美团技术博客 美团开源Graver框架:用“雕刻”诠释iOS端UI界面的高效渲染。
其他
有兴趣一起雕琢艺术品吗?欢迎投递简历到 [email protected] ,加入我们的团队!
微信交流群:
加下方小助手微信,自动通过后输入 “Graver” 即可加入微信交流群。
Recommend
-
91
MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。 该工具已经在美团点评内部使用 二、详细说明...
-
109
Shield Shield是一个模块化UI界面解决方案,它不仅仅是一个Native(Android&iOS)的UI开发框架,而是美团点评到店综合团队基于自身复杂的业务场景沉淀出来的UI开发最佳实践,它不但具备高可复用性,协同开发等特性,还包括后端动态配...
-
100
GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 80 million projects.
-
54
README.md Logan
-
36
README.md Leaf There are no two identical leaves in the world. 世界上没有两片完全相同的树叶。 — 莱布尼茨
-
59
Graver 是一款高效的 UI 渲染框架,它以更低的资源消耗来构建十分流畅的 UI 界面。Graver 独创性的采用了基于绘制的视觉元素分解方式来构建界面,得益于此,该框架能让 UI 渲染过程变得更加简单、灵活。目前,该框架已经在美团 App 的外卖...
-
37
README.md 大众点评店铺信息爬虫 花式反反爬之抓取大众点评店铺信息。 项目目录 │ config.py │ dianping.py │ parse.py │ proxy.p...
-
66
README.md OCTO-RPC 服务通信框架 背景 随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加...
-
57
README.md 一、简介 SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析...
-
26
近些年,移动端动态化技术可谓是“百花齐放”,其中的渲染性能也是动态化技术一直在探索、研究的课题。美团的开源框架 Graver 也为解决动态化框架的渲染性能问题提供了一种新思路:关于布局,我们可以采用“画控件”方案替代传统的“拼控件”方...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK