ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:23.14KB ,
资源ID:1563686      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1563686.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(webkit编译详解Word格式文档下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

webkit编译详解Word格式文档下载.docx

1、快速词法分析器发生器BisonGNU项目分析器2.X11+Gtk+WebKit交叉编译详解编译列表:NameVersionlibpng1.2.10pkg-config0.233.0.3Tiff3.8.2libjpeg6bfreetype2.1.10libxml22.6.30fontconfig2.4.2XFree864.7.0glib2.18.0atk1.20.0cairo1.2.0pangogtk+2.14.0ICU4c-3_6xslt1.1.22curl7.19.2sqlite3.5.6WebKitr29711The cross source:export ARCH=armexport C

2、C= iwmmxt_le-gccexport CXX=iwmmxt_le-gccexport BUILD_ROOT=/uplatformexportPATH=/opt/montavista/cee/devkit/arm/iwmmxt_le/bin/:/opt/montavista/cee/host/bin/:$BUILD_ROOT/usr/bin:$PATHPKG_CONFIG_PATH=$BUILD_ROOT/usr/lib/pkgconfig:$BUILD_ROOT/usr/X11R6/lib/pkgconfig说明:CC是c的编译器选项,CXX是C+的编译器选项。BUILD_ROOT是要

3、build的路径。PKG_CONFIG_PATH,现在大多数软件,都是通过pkg-config来检查依赖关系的,所以要把两者都加到PKG_CONFIG_PATH环境变量中Libpngetho ac_cv_fnuc_malloc_O_nonull=yes $ARCH-linux.cache./configure -prefix=/$BUILD_ROOT/usr -host=$ARCH-linuxmake &make install./configure应为需要较高级的版本的pkg-config才能编译glib和gtk,如果编译机上的版本够高就不需要在升级pkg-config了Gperf企业版的/

4、usr/bin下有,可以直接使用,如果没有需要编译一个字体读取文件库Libjpeg由于x11的需求不同,在配置选项的时候要加特定的参数。所以需要知己configureh看所需要的选项Glibac_cv_type_long=yesglib_cv_long_format=llglib_cv_stack_grows=noglib_cv_uscore=noac_cv_func_posix_getpwuid_r=yes./configure -host=arm-linux -prefix=$BUILD_ROOT/usr以上选项加入到configure里再configure,应为我们arm上裁剪的是2.4

5、内核,所以有些是不支持的,需要屏蔽Atkexport CFLAGS=pkg-config -cflags glib-2.0 -I$BUILD_ROOT/usr/includeexport LDFLAGS=-L$BUILD_ROOT/usr/lib,-rpath=$BUILD_ROOT/usr/lib因为atk是依赖glib的,所以需要指定glibCairoExport CFLAGS=-I$BUILD_ROOT/usr/include -I$BUILD_ROOT/usr/X11R6/includeExport LDFLAGS=-L$BUILD_ROOT/usr/lib -L$BUILD_ROOT

6、/usr/X11R6/lib -lXft -lfreetype-lfontconfig -lXrender -lexpat -lXext -lX11./configure-host=arm-linux-disable-nls-with-x-prefix=$BUILD_ROOT/usr-x-includes=$BUILD_ROOT/usr/X11R6/include -x-libraries=$BUILD_ROOT/usr/X11R6/libmake &由于我们编译的是1.2.0所有不需要编译pixmanPangoFREETYPE_CONFIG=$BUILD_ROOT/usr/bin/freet

7、ype-configExportLDFLAGS=-L$BUILD_ROOT/usr/lib -Wl,-rpath=$BUILD_ROOT/usr/libCFLAGS=2.0 cairo -I$BUILD_ROOT/usr/include/freetype2因为pango依赖GLib, freetype,cairo,x11,所以要指明其连接首先屏蔽config.h里面的HAVE_XFIXES 0HAVE_CUPS_API_1_2再configurepkg-config-cflagspangoft2pangocairo-I$BUILD_ROOT/usr/include-I$BUILD_ROOT/u

8、sr/include/freetype2 -I$BUILD_ROOT/usr/X11R6/include/pkg-config-libspangoft2pangocairo-L$BUILD_ROOT/usr/lib-lintl-L$BUILD_ROOT/usr/X11R6/lib-lXft-lfreetype-lfontconfig-lXrender-lexpat-lXext-lX11CC=iwmmxt_le-gcc./configure -disable-cups -disable-nls -enable-xim=no -disable-xim-inst -with-xinput=nomak

9、e &./configure -enable-static -enable-shared -host=arm-linux -prefix=$BUILD_ROOT/usr/Xslt./configure-host=arm-linux-with-x-prefix=$BUILD_ROOT/usr-x-includes=$BUILD_ROOT/usr/X11R6/include -x-libraries=$BUILD_ROOT/usr/X11R6/libCurlac_cv_file_dev_urandom_=yes./configure-host=arm-linux-prefix=$BUILD_ROO

10、T/usr/-without-ssl-without-ca-path-without-ca-bundle在configure文件里加ac_cv_file_dev_urandom_=yes,再configureSqlite首先执行sh autogen.sh执行autogen脚本,会生成configure,再执行configureCFLAGS=-I$BUILD_ROOT/usr/includeLDFLAGS=-L$BUILD_ROOT/usr/lib./configure-prefix=$BUILD_ROOT/usr-host=$ARCH-linuxCFLAGS=-I$BUILD_ROOT/usr

11、/includeCPPFLAGS=-I$BUILD_ROOT/usr/include icu_config=$BUILD_ROOT/usr/3.编译出错Q&A:Q:在configure中报找不到某个库,或某个库的版本太低。A:1确认是否有该库,版本是否太低。如果没有请编译该库2有该库文件,证明没有正确的连接到在CFLAGS和LDFLAGS两个环境变量中指明连接的头文件和库。3只明了路径为什么还不行?有些要通过pkg-config读取.pc文件的形式才能正确。在configure中什么找不到,或一些莫名奇妙的错误。直接打开configure文件,找到报错的地方,找到其判断语句并将起屏蔽。如2.4

12、的内核不支持stack_grows,在编译glib的时候就要加glib_cv_stack_grows=no,让其屏蔽过去。在make的时候包语法错误找到该文件,直接修改其语法错误。应为是开源软件,有语法错误很正常。Q:在make的时候出现找不到某库文件直接在Makefile的LDFLAGS加其库连接选项,如果本来就不要该库就直接删除。在make的时候找不到某函数。在config.h里屏蔽其函数对应的宏。一般来宏来控制某个编译选项,有些函数是通过宏来判断是否执行的。其他问题请google一下。哈哈!三WebKit分析1.体系结构WebKit上层组织应用WebCorePage与外框相关的内容(Fr

13、ame,Page,History,Focus,Window)Loader加载资源及CacheHTML-DOM HTML内容及解析DOM- DOM CORE内容XML- XML内容及解析Render-排版功能CSS-DOM CSS内容Binding-DOM与JavascriptCore绑定的功能Editing-所有与编辑相关的功能JavascriptCore-javascript引擎API-基本javascript功能Binding与其它功能绑定的功能,如:DOM,C,JNIDerviedSource自动产生的代码ForwordHeads头文件,无实际意义PCRE-Perl-Compatible

14、 Regular ExpressionsKJS-Javascript KernelWTF-KDE的C+模板库Unicode unicodexxTools toolsxxCURL-url客户端传输库PlatForm-与平台相关的功能,如图形图像,字体,Unicode, IO,输入法等.2.解析流程 2.解析划分字符串3.通过Dom Builder按合法的html规范生成Dom树4.如果有javascript,JSEngine就通过ECMA-262标准完善Dom树5.把Dom传给LayoutEngine,进行布局,如果有CSS样式,就通过CSSParser解析。6.最后Rendering out出

15、来3.浏览器系统结构浏览器系统结构图分为四层第一层为业务应用层,用户可在webkit基础上构建各种应用。第二层为插件及第三方库。第三层为webkit平台Porting所需的接口层。第四层为平台和操作系统支持层,提供webkit平台所需的软硬件资源。四各种浏览器比较分析1.网页浏览器列表引擎网页浏览器Trident GeckoFennec,Firefox,网景(6至9), SeaMonkey,Camino,Flock,Galeon,K-Meleon,Minimo,Mozilla,Sleipnir,Songbird ,XeroBankKHTML或WebKit框架Safari,Konqueror,E

16、piphany,Google Chrome,iCab,OmniWeb,Midori,ShiiraPrestoOpera,xxDS浏览器JavaHotJava,Opera Mini,UCWEBTasman 文字界面Lynx,Links,w3m嵌入式系统 其它Amaya , Dillo ,MosaicGecko是套开放源代码的、以C+编写的网页排版引擎。目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。这套排版引擎提供了一个丰富的程序界面以供互联网相关的应用程式使用,例如网页浏览器、HTML编辑器、客

17、户端/服务器等等。虽然最初的主要对象是Mozilla的衍生产品,如Netscape和Mozilla Firefox,现在已有很多其他软件现在利用这个排版引擎。Gecko是跨平台的,能在Microsoft Windows、Linux和Mac OS X等主要操作系统上运行。KHTMLKDE系统自KDE2版起,在KDE的新程式Konqueror的网页浏览器使用了KHTML引擎。 Presto是一个由OperaSoftware开发的浏览器排版引擎,供Opera7.09.60版使用。Presto取代了旧版Opera4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及S

18、cript语法的事件而重新排版。Presto在推出后不断有更新版本推出,使不少错误得以修正,以及阅读Javascript效能得以最佳化。2.浏览参数性能比较 IE,Firefox,Opera,Safari。它使用了iBench和SunSpider作性能基准测试软件。这里我们摘取其部分有用数据,进行比较。iBench是一款应用广泛、跨平台基准测试程序,它能够检测各种Web客户端应用网络新技术时的所表现出来的性能数据。这里的Web客户端是指任何用于从网上获取信息的硬件和软件,不论使用T1连接互联网Macintosh电脑、无线掌上设备、运行Linux接收WebTV的台式机都在其中。程序将对这些设备进

19、行一系列测试,得出易用特性和网速对应用的影响程度。SunSpider一个JavaScript的基准。这个基准测试核心的JavaScript语言,并非测试DOM或其他浏览器的API的。它的目的是比较不同版本的同一浏览器,以及不同的浏览器之间的比较。是广泛使用的JavaScript的基准。5.0的XML/CSS和HTML的下载结果可以看出Safari和Firefox表现都不错,IE和Opera表现其次。5.0的JavaScript的测试性能上看,Safari,opera和Firefox都表现不错,IE明显落后。以上为SunSpider测试出的综合指标,越小越好。明显可以看出,Firefox和Saf

20、ari表现比较好,Opera其实,IE比较落后。一下是SunSpider测试个参数详细列表:3.浏览器使用率分析全球浏览器使用分布日期 FirefoxOperaSafariQ4 200870.53%20.35%0.73%6.84%Q3 200872.22%19.48%0.71%6.39%Q2 200873.81%18.43%6.14%Q1 200875.06%17.35%0.67%5.78%Q4 200777.37%15.84%0.62%5.24%Q3 200778.85%14.69%0.51%4.80%Q2 200778.76%14.92%0.46%4.66%Q1 200779.38%14.

21、35%0.50%4.70%Q4 200680.69%13.50%0.56%4.06%Q3 200682.88%11.89%3.30%Q2 200684.03%10.67%0.57%3.25%Q1 200685.01%9.77%0.53%3.10%Q4 200585.88%9.00%0.54%2.80%Q3 200586.74%7.97%0.55%2.24%Q2 200587.24%8.08%0.52%1.89%Q1 200589.02%6.17%0.49%1.70%Q4 200491.35%3.66%1.50%增长率:-27.91%229.82%43.13%356%4.WebKit的SWOT分

22、析优势(Strengths)通过测试结果WebKit的性能优越是其最大的优势,再加上其开源项目。性能优越加开源这两大优势,是目前很多嵌入式产品选择他的原因。劣势(Weaknesses)因为开源,代码并不是最新的,都是Apple和KDE的更新产品。代码有滞后性。开发周期较长和人力投入比较大,毕竟代码量大,复杂度高。机会(Opportunities)随着通讯技术的发展,以后的手持设备基本都配有上网功能。但目前嵌入式设备上的浏览器还是只有竞争时期,这是一个很好的机遇。如果在做出优秀的适应嵌入式的浏览器,将能成为这一浪潮的弄潮儿。威胁(Threats)大蛋糕大家都想要,腾讯,google等都开始推出自己的浏览器。嵌入式方面Opera, Access等公司都在努力扩张直接的市场,一些大公司也直接晚上WebKit推到直接的平台上,Apple,Android,NOKI等都在自己的手机上推出WebKit的浏览器,可见其竞争是非常激烈度。五浏览器的未来基于WebKit引擎的Safari forWin已经推出,我们可以发现Safari除

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2