设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

开发者应当了解的WebKit知识

2013-5-20 15:27| 发布者: 红黑魂| 查看: 10498| 评论: 2|来自: CSDN

摘要: 对一些开发者而言,WebKit就是一个黑盒子。丢进去HTML、CSS、JS等一连串的东西,而WebKit就能变魔术一般显示出一个很棒的网页出来。实际上,正我的同事IlyaGroriks提到的: WebKit不但是白盒,而且是一个开放的白盒。 ...

对一些开发者而言,WebKit就是一个黑盒子。丢进去HTML、CSS、JS等一连串的东西,而WebKit就能变魔术一般显示出一个很棒的网页出来。实际上,正我的同事IlyaGroriks提到的:

  WebKit不但是白盒,而且是一个开放的白盒。

让我们花点时间来理解以下这些问题:

什么是WebKit? 
什么不是
WebKit? 
浏览器是如何使用
WebKit的? 
为什么
WebKit分支各不相同?

最近连Opera都转到WebKit平台上。下面的内容可以让你能够识别浏览器间的差异,去到合适的tracker上报Bug, 同时可以了解如何更有效的在各个浏览器上开发。

 

标准的浏览器组件

以下是现代浏览器的一些组件:

·        解析(Parsing) (HTML, XML, CSS, JavaScript)

·        排版(Layout)

·        渲染(Text and graphics rendering)

·        图片解码(Image decoding)

·        图形加速(GPU interaction)

·        网络访问(Network access)

·        硬件加速(Hardware acceleration)

只有前两项是被所有WebKit浏览器所共享的。其它的部分由不同的WebKit ports来实现。什么意思?

 

WebKit的移植版本(Ports)

现在有很多WebKit的移植版本,先看一下WebKit hacker(也是SenchaDirectorAriya Hidayat的解释:

WebKit最为公认的参考是Apple自己运行在Mac OS X上的分支,也是最初和原装的WebKit库。在Mac OS X上不,围绕着CoreFundation等不同的原生系统库实现出了不同的接口。比如让WebKit之所以知道如何绘制出一个带有圆角的flat button,其实最终是由CoreGraphics负责的。


在Mac移值版本上使用的是CoreGraphics(CG),Mac上的Chrome则使用的是Skia

 WebKit不断地被移植到不同的平台上,包括桌面版本和Mobile版本,它们通常被称为一从此WebKit portApple自己也基于CoreFoundation库的Windows版本移植了一份Windows版本的WebKit


不过Windows版的Safari已经死去.


除此之外,还有许多其它的ports (完整列表)Google创建并维护着Chromium port还有基于Gtk+WebKitGtkNokia (实际上是Trolltech)维护着Qt port,就是知名的QtWebKitmodule.

 

WebKit ports介绍

·        Safari

       o   SafariOS X版本Windows版本是两个不同的移植版本。

       o   WebKitnightly是基于SafariMac OS版本的。稍后详述……

·        Mobile Safari

       o   是专属维护的分支,但随后就成了主流版本

       o   Chrome on iOS(使用的是Apple提供的 WebView,随后会说明它们的不同部分)

·        Chrome (Chromium)

       o   Chrome onAndroid (直接使用Chromiumport)

       o   Yandex Browser, 360 Browser, Sogou Browser使用Chromium,还有Opera.

·        Android Browser

       o   紧跟WebKit的最新版本。

·        更多的移值版本: Amazon Silk, Dolphin, Blackberry, QtWebKit,WebKitGTK+, EFL port (Tizen), wxWebKit, WebKitWinCE等。

 

不同port的关注不同。Mac port关于于将浏览器从系统中分离,引入Obj-CC++的绑定(binding)以方便在应用中使用WebKit渲染引擎。Chromium则纯粹关注于浏览器。QtWebKit则为其跨平台应用提供运行时或渲染引擎。




酷毙
1

雷人

鲜花

鸡蛋
1

漂亮

刚表态过的朋友 (2 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部