ҳ ʫ ֵ Ѵ ־ ѧУ վͼ
ǰλ: ҳ > ̳Ƶ > վ > Webǰ >

探烦WebKit内核Q一Q?- 菜鸟h

2013-04-02 
探烦WebKit内核Q一Q?----- 菜鸟hZ么搞WebKit雜研究WebKit的h来EQ

探烦WebKit内核Q一Q?----- 菜鸟h
Z么搞WebKit

雜研究WebKit的h来EQ俺不能免俗Q也加入其中。WebKit的火爆也是得益于覻器和WebOS的؜战,随着Palm WebOS, Chrome OS, Firefox OS和Ubuntu Mobile相继发布QWebOS逐渐成ؓAndroid和IOS之A的第三世界,而WebKit也随之从覻器内核晋升ؓMobile OS的内核,除了IE和Firefox之AQ市靣G叫得上名字的都是ZWebKit发展hQChrome, Safari, Opera, 360......。因此,无论你是从事覻器还是Mobile的开发,WebKit都是不二的?择?而我目前是因为需要在WebOS上提供一个类gChrome for android那样可以远程debug的功能,而接触到WebKitQ随?断深入,也?渐步入nebKit的开发正轨,也是x?的学习历E记录下来,也是帮助其他朋友进这个大门,WebKit的资料实在不多?

如何h我就假定你和我一P从没接触过WebKitQ没写过c/c++Q@Java/PHP{傻瓜式语言惯坏了,对设备底层技术不甚了解,在这U情况下Q不可能比这个更p了Q,也是可以在一周左n这个门的?正式?之前先准备以下几步:学习文章Qhttp://paulirish.com/2013/webkit-for-developers/Q当然也有中文版本:http://www.infoq.com/cn/articles/webkit-for-developersQ弄清PWebKit的几个@?/span>准夓?CPU和硬盘较好的电脑QCPU是ؓ了应付编译,盘是ؓ了应付大规模代码的访问(d7月份买的mac已不够用Q特Cؓ此换了SSDQ?/span>?qn?是XcodeQVisual Studio也行Q不过可能会遇到很E坎?准夓?C++ Primmer Plus攑֜手边Q研IWebKit同时Z把C++也给d?/span>l予nJ的?心,应付漫长的源码下载和~译好了Q就这么多,可以?了?关于如何~译和调试等问题Q我会在后箋文章中详l介l??之前的扫?/span>WebKit portWebKit已发展ؓcM与Linux这样qn性的框架Q已不是单一产品cd的开源项目?它是?标准和变异的l合体?下面这张图能很好说明这点Q?/span>探烦WebKit内核Q一Q?- 菜鸟h
WebKit提供了像这张图这L标准架构和WebCore这样的核心库Q但灰色的其他部分都是覠Ҏ各自qn的不同?进行替换和移植,也就是谈及很多的portQ这里谈的h雰是各自设备的运行环境Q比如mac os xQAndroid和IOSQ因此虽然咱是用WebKitQ但可以做的事情还有很EQWebKit只是提供了流E和框架Q里面有很Ez需要咱自己d补的。比如,我现在做的远E调试功能,在WebKit里面已在程上支持,但具体实C是需要port的,也就D了只有chrome for android和safari for IOS支持远程调试。开头介l的文章中已|列出哪些点是标准已实现的,哪些Ҏ差异化的Q从这里面大概就能预计到?做哪些东ѝ?学习qn的??/span>官方的WebKit是以Safari for Mac OSX为基?QChromium虽然也是ZWebKitQ但基本上已是另外一套,还有QT和GTKqnQ有很E覻器,比@Opera?60都?择了ZChromiumQ那对于我们这些初学者来说该如何选择学习的v点呢Q我的感觉是Q?span style="font-size:14px;">标准的WebKit门低一点,文档要丰富一些,但作为将来工E的方向Q?span style="font-size:14px;">Chromium更受Ƣ迎?Q所以,我推荐以官方的WebKitv点,然后再g伸到Chromium。后面我会谈?环境的搭建,Z官方?span style="font-size:14px;">WebKitQ再加上XCodeQ会感覼手上很顺滑,不至于像大E雤型开源项目那样在?始就把你拒之门A?/span>?动手下面我介l动手的几个步骤Q可以在你无?解细节的情况下,把环境搭hQ大多数包括我自己,都忘是习惯于代码和环境搭建好情况下,比较有心情和底气d下深入,?耐心雮成下面几步,你就可以在开发环境中启动WebKitQ这里我介绍的是Mac下的情况Q但在windows和linux会困难一些,L我是受阻后就攑ּ了:
    升Mac OSX和Xcodex新版本,我的是Mountain Lion 10.8.3和Xcode 4.6。做这个是因为我的一个哥们用的是lionQ用的一L步骤Q但启动后一直报内存讉K错误Q升U系l至?后就解决了?当然Q别忘记了xcode command line取得?代码Q?span style="color: rgb(51, 51, 51); font-family: Courier, Fixed;">svn checkout https://svn.webkit.org/repository/webkit/trunk 当然Q这个过E是?耐心的,特别是下载layout testӞZ来的一马h川,忍忍?/span>Xcode的菜单File->Workspace Settings->Build->Derived Data Location?选择Workspace-relativeQ并输入WebKitBuild->Done
    Xcode的菜单Product->Scheme->Edit Scheme->选择scheme: All Source(target WebProcess), Exceutable选择WebProcess.app
如果你是下蝲的是?代码Q环境搭Z仅只?以上几步Q当你点击Run后,可以开始顺利编译,?会弹出SafariQ实际上它的run的是webkit内核Q需要一个Safari来作UI层?WebKit也提供了?MiniBrowserQ这和Safari没关pMQ启动方法就是在W四步上?span style="color: rgb(51, 51, 51); font-family: Courier, Fixed; font-size: 14px;">Exceutable选择MiniBrowser.appn?/span>我当初基于的代码会有些其他的问题Q这里就不干雤家了Q@果有遇雷的请把错误脓出来Q我看看遇到过没?/span>
OKQ了解基本@念,搭徏好了?和调试环境,我敢怿MU别菜鸟Q都会有信心?l箋q了?我的理念是这样Q不后面有多难Q千万不要把?搞得太夙杂,这样会拒很EZ门AQ这也是我ؓ?推荐?始用xcode的原因,WebKit官方已把~译中所有细节都隐藏在xcode的项目设|和脚本中了。后靣H我会Z源码Q?步深入,和大家一hIWebKit内核的T奇和伟大?/span>
1¥zxf3164864684Сʱǰ
~ϣ¥Ѻƪ~ĿպҪõwebkit֪ʶ
Re: cutesource13ǰ
ظzxf316486468nǺǣܶ㶼һ֪⣬Ū͸˵

ȵ