CEF:chromium embedded Framework(谷歌嵌入式框架)

CEF架构

在这里插入图片描述

1、CEF架构的概述

1.1、背景:

CEF:chromium embedded Framework是由Marshall Greenblatt在08年成立的一个开源项目,目的是开发一个基于Google Chromium项目的Web browser控制器。CEF目前支持大多数编程语言和操作系统,并可以轻松的整合新的和已存在的应用。设计的目的也是为了效率/性能和方便使用。基础的框架包括了借助原生库的C/C++接口,这样将主机的应用与chromium和WebKit隔离开来。它提供了浏览器控制和主机应用程序(包括支持自定义插件、协议、JavaScript对象和JavaScript扩展)之间紧密的集成。主机应用程序可以有选择地控制资源加载、导航、菜单、打印等,当利用了相同的性能和Google Chrome浏览器具备的HTML5技术。

1.2、依赖/相关:

CEF项目依靠一堆其它由第三方维护的项目,主要又以下:

  • Chromium: 基础,网络堆栈,线程,消息机制,log,进程控制,生成Web browser。
  • WebKit: 提供DOM解析,布局,事件处理,渲染,HTML5JS的API。
  • **V8: ** JS引擎。 Skia:2D图形库。
  • Angle: 3D图形转换,和DirectX有关。
1.3、版本

3个版本:

  • CEF1: 单进程工具调用chromium Webkit API
  • CEF2: 多进程工具建立在Chromium browser
  • CEF3: ** 多进程工具调用Chromium**。
1.4、Content API

通用API用法:

所有版本的CEF都公开一个简单好用的API(让用户从ChromiumWebkit复杂的代码中分隔开来),详细如下:

  • 调用**CefInitialize()**对CEF初始化。
  • 调用CefRunMessageLoop() or **CefDoMessageLoopWork()**来在UI消息上处理事务。
  • 调用CreateBrowser() or CreateBrowserSync()并传递一个CefClient事例来创造一个browser窗口。
  • 在程序退出前调用**CefShutdown()**来关闭CEF。
1.5、CEF1

CEF1使用单进程架构,并直接将ChromiumWebkit整合到客户端应用程序中。单进程的优点包括了建设内存的使用和进一步与客户端应用的耦合。缺点有某些类型的加载内容性能低,和由于同进程中运行Flash插件的崩溃问题。

CEF1 API用法:

  • CefApp,此接口用来传递到CefInitialize(),和允许应用程序定制全局,如资源加载,代
    理。

  • CefClient,此接口用来传递到CefCreateBrowser() or CefCreateBrowserSync(),和充当单独CEF Browser事例和客户端应用程序的连接,也负责请求和显示处理的接口 。

  • CefBrowser,公开由浏览器提供的功能。包括前进后退导航,来源检索,加载请求等,一个CefBrowser可能有一到多个子类的CefFrame对象
    线程注意事项 。

  • CEF1包括UIIOFILE线程。 UI线程创建Browser窗口,用来所有与WebKitV8的交互,IO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森明帮大于黑虎帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值