天天看点

《深入理解Android》一2.2 浏览器和WebKit简史

本节书摘来自华章出版社《深入理解android》一书中的第2章,第2.2节,作者孟德国 王耀龙 周金利 黎欢,更多章节内容可以访问云栖社区“华章计算机”公众号查看

和html标准相伴至今,浏览器从无到有,从简单到复杂,经历了许多变化,内容越发丰富,功能日益强大。

第一个浏览器也是由world wide web发明人tim berners-lee于1990年发明,恰好最开始它的名字就叫world wide web,后来为避免浏览器软件与万维网技术重名而改称nexus。第一个易于使用并大规模流行的浏览器是marc andreesen于1993年发明的mosaic,他又成立了网景公司,在1994年推出了赫赫有名的netscape navigator浏览器。微软在互联网争夺战中后发制人,在internet explorer浏览器免费绑定进windows 95系统,最终赢得了第一次浏览器世界大战。至2000年初,因windows 98、windows xp和ie 5.0、6.0等一系列产品的成功发布,微软在浏览器市场份额上的垄断地位业已形成。

1998年,网景公司成立了mozilla组织,正式将其浏览器代码开源,成为open source和浏览器发展史上又一重要里程碑。mozilla几经磨炼,于2004年又成功推出了拥有多标签浏览、add-on扩展等特色功能的firefox浏览器,一时风靡世界,从ie手中又夺回了不少市场份额,拉开了第二次浏览器世界大战的序幕。

2003年以后,随着苹果公司的王者归来和google的快速崛起,浏览器和整个it界都发生了深刻而不可逆转的变化。苹果公司mac os和ios操作系统开发的safari浏览器最终借鉴采纳了kde桌面khtml排版引擎,并组织成立了webkit开源项目和基金会,强有力地推动了浏览器排版引擎的发展。靠搜索引擎起家的互联网世界霸主google在2008年也终于把触角伸向了web客户端,重磅发布了基于webkit引擎开发的chrome浏览器。自此浏览器战场上群雄纷起、金花齐放,各自凭依操作系统平台,形成了一定的战略均衡态势。

当前全球范围内使用最广的浏览器有google chrome、mozilla firefox、internet explorer、opera和safari,其中firefox、safari和chrome这三大开源引擎浏览器总共占据了超过50%的市场份额。除了这些支持完整w3c html标准的全功能浏览器之外,还有在linux等系统中被小范围使用的命令行文字界面浏览器,如lynx、links、w3m等。图2-13用时间轴的形式展示了部分主流浏览器的发展史。

早期浏览器的排版引擎并未被设计成独立模块,而是与浏览器的其他部分代码紧耦合成一个整体。mozilla将其排版引擎gecko作为标准模块单独发布后得到了广泛使用,诸多浏览器开发商如maxthon、flock、lunascape等开始采用gecko引擎作为浏览内核,并且一些非浏览器应用如mozilla thunderbird也基于其开发。目前功能完备的排版引擎分别是:trident(应用于internet explorer)、gecko(应用于mozilla firefox)、presto(应用于opera,计划被webkit替代)、webkit(应用于apple safari和google chrome)。

《深入理解Android》一2.2 浏览器和WebKit简史

简述完浏览器的众家族史之后,我们来看看本书主角webkit的前世今生。

一直以来,pc浏览器基本上是ie和mozilla的天下,排版引擎非trident即gecko,第三方采用opera trident的情况极少。ie背靠windows的垄断地位长期称霸而不思进取,ie 6之后多年未曾更新,mozilla firefox的市场份额则增至20%左右后缓滞不前。2008年9月,谷歌公司重磅推出了基于webkit内核的chrome浏览器,从此风云突变,三国大战再起。异军突起的搅局者chrome促成了浏览器技术的持续发展,时至今日已是天下三分。webkit也因此逐渐转入更多开发者的视界,影响力和知名度与日俱增。

自2007年苹果公司发布iphone以来,智能手机和移动互联网领域产生了革命性的爆发式增长,webkit也随之迎来了又一个腾飞的新契机。在两大主流移动智能操作系统ios和android上,默认的浏览器内核都是webkit,而且分别以framework的方式推出了uiwebkit和webview组件,使得第三方开发者可以据此构建自己的浏览器或使用web技术展现内容的各种复杂应用。ios和android双峰对峙,在确立了移动生态系统牢不可破的垄断地位,伴随而来的结果就是移动平台上的浏览内核基本上全是webkit。

当前webkit在各操作系统平台上总的市场份额高达40%,大幅超越trident和gecko位居第一。老牌的opera浏览器已经痛下决心当机立断,宣布在下一个版本中抛弃自主的presto引擎,转而采用webkit作为内核。

主流排版引擎都经历过长达十几年的发展,webkit在其中只能算作一个后起的新兴之秀,但无论功能、性能、成熟度、兼容性还是市场份额,webkit都完全不输于那些老牌产品,甚至有很多方面明显胜出。从表2-1对主流排版引擎在html 5、js性能、css3等多方面的评测中可以看出,webkit引擎十分优秀,拥有强大的竞争力和吸引力。

《深入理解Android》一2.2 浏览器和WebKit简史

 performance和feature结果既依赖于排版引擎也依赖于浏览器外壳,而这两者的版本都是不断升级更新的。因此表2-1的对比评测只能作为参考结果,和迅猛发展的各浏览器实际表现会有一定出入,更多详细的最新测试结果可从acid3、css3test、html5test、peacekeeper、karen、dromaeo等专业测试网站和其他科技网站上看到。总的来说,以webkit/blink为内核的chrome浏览器在诸多性能评测中基本上会囊括各项冠军,同时其他浏览器尾随其后也在不断努力追赶。

从最初的弱小嫩苗到今日的苍天大树,webkit已经走过了近15年的历史。回顾其迅猛的发展历程和如今日益普及的现状,展望未来,我们完全有理由相信,webkit/blink最终将成为排版引擎中的unix/linux,被业界当作事实上的标准实现。至少在开源引擎中,presto已将星陨落,仅存的硕果竞品gecko发展前景和势头已经明显不如webkit,试问尚有谁再可与之争锋呢?

继续阅读