2024年3月30日发(作者:)
CEF架构的概述
背景:
CEF:chromium embedded Framework是由Marshall Greenblatt在08年成立的一
个开源项目,目的是开发一个基于Google Chromium项目的Web browser控制器。CEF
目前支持大多数编程语言和操作系统,并可以轻松的整合新的和已存在的应用。设计的目
的也是为了效率/性能和方便使用。基础的框架包括了借助原生库的C/C++接口,这样将
主机的应用与chromium和WebKit隔离开来。它提供了浏览器控制和主机应用程序(包括
支持自定义插件、协议、JavaScript对象和JavaScript扩展)之间紧密的集成。主机应用程
序可以有选择地控制资源加载、导航、菜单、打印等,当利用了相同的性能和Google
Chrome浏览器具备的HTML5技术。
依赖/相关:
CEF项目依靠一堆其它由第三方维护的项目,主要又以下:
Chromium:基础,网络堆栈,线程,消息机制,log,进程控制,生成Web browser。
WebKit:提供DOM解析,布局,事件处理,渲染,HTML5JS的API。
V8:JS引擎。
Skia:2D图形库。
Angle:3D图形转换,和DirectX有关。
版本:
3个版本:
CEF1,单进程工具调用chromium Webkit API
CEF2,多进程工具建立在Chromium browser
CEF3,多进程工具调用Chromium Content API
通用API用法:
所有版本的CEF都公开一个简单好用的API(让用户从Chromium和Webkit复杂的代
码中分隔开来),详细如下:
1. 调用CefInitialize()对CEF初始化。
2. 调用CefRunMessageLoop() or CefDoMessageLoopWork()来在UI消息上处理
事务。
3. 调用CreateBrowser() or CreateBrowserSync()并传递一个CefClient事例来创造
一个browser窗口。
4. 在程序退出前调用CefShutdown()来关闭CEF。
发布评论