优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

浏览器

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

 摘  要

本文来自think58

[资料来源:www.THINK58.com]

[资料来源:http://www.THINK58.com]

 本文主要论述了嵌入式浏览器开发所涉及到的技术,对HTML词法分析、浏览器JavaScript支持、linux和gtk编程等做了详细的分析和介绍,并对Netbit浏览器的开发进行了介绍,分析了主要的模块的功能和组成,并给出了主要算法。

think58.com [来源:http://www.think58.com]

[资料来源:THINK58.com]

还对典型的嵌入式浏览器进行了分析,包括Gzilla,Mozilla,Thunder和zen,总结了浏览器设计的技术要点和开发策略。 内容来自think58

[资料来源:http://think58.com]

另外,在论文开头,介绍了目前嵌入式浏览器产品的发展现状,嵌入式浏览器的组成和各部份功能说明。

本文来自think58 [来源:http://www.think58.com]

[来源:http://www.think58.com]

 HTML词法分析是着重讨论的技术问题,给出了详尽的数据结构,程序流程。

copyright think58 [来源:http://www.think58.com]

[资料来源:THINK58.com]

 Netbit浏览器的开发,是本论文的重点,分模块进行了分析,提出了需要改进的地方,并给出了改进措施。 think58.com [资料来源:http://www.THINK58.com]

关键词:嵌入式浏览器,HTML词法分析,Javascript,linux,gtk
 
目 录

think58 [资料来源:http://THINK58.com]

[版权所有:http://think58.com]

引言………………………………………………………………5
第一章 嵌入式浏览器设计概述 ………………………… 6
1.1目前嵌入式浏览器产品的发展现状 ……………………… 6
1.2嵌入式浏览器的组成和各部份功能说明 ………………… 8
1.3开发难度分析 ……………………………………………… 9
1.4开发的前期策划 …………………………………………… 10 [资料来源:http://think58.com]

第二章 HTML词法分析器的设计及其应用 …………… 12
2.1 Bit Token的组成及其功能 ………………………………12
2.2 数据结构 ……………………………………………………12
2.3 算法 …………………………………………………………13
2.4词法分析结果示意……………………………………………15
2.5 HTML词法分析的应用 ………………………………………15 [资料来源:http://www.THINK58.com]

第三章 浏览器JavaScript支持的实现 …………………18
3.1基本的JavaScript 开发环境 ………………………………18
3.2 JavaScript Engine …………………………………………18
3.3 JavaScript与浏览器接合 ………………………………… 19
3.4 浏览器消息响应 …………………………………………… 21

think58好,好think58 [资料来源:http://think58.com]

[来源:http://think58.com]

第四章 Linux程序开发技术及 GTK图形程序开发…… 23
4.1 Linux下的程序开发环境 ……………………………………23
4.2 GTK图形程序开发 ……………………………………………29 think58 [资料来源:http://think58.com]

第五章 Netbit浏览器开发与分析 ……………………… 31
5.1 Netbit 浏览器简介 ………………………………………… 31
5.2 Netbit Browser浏览器各部份的功能 …………………… 31
5.3 界面模块………………………………………………………32
5.4 控制模块………………………………………………………34
5.5词法分析模块… ………………………………………………34
5.6使用PIXMAP的画图模块………………………………………35
5.7 文本文件的显示模块…………………………………………36
5.8 HTML文件的显示模块 ……………………………………… 37
5.9 Netbit实际应用效果及比较 ……………………………… 40
5.10 Netbit Browser的缺点分析及改进办法 …………………44
5.11 Netbit Browser未来的展望 ………………………………48

[资料来源:http://think58.com]

第六章  其它浏览器分析…………………………………… 50
6.1  Dillo(Gzilla)浏览器分析 ……………………………… 50
6.2 Thunder浏览器分析…………………………………………55
6.3 Mozilla浏览器分析…………………………………………56
6.4 ZEN浏览器分析………………………………………………57
6.5 浏览器分析工作的总结………………………………………58 think58.com

[资料来源:www.THINK58.com]

致  谢…………………………………………………………… 60
参考文献表………………………………………………………61
 
1.1.3  嵌入式浏览器的应用领域
嵌入式浏览器主要应用于手持终端和信息家电,例如掌上电脑、3G手机、网络机顶盒、具有网络功能的其它家电,如可上网的电冰箱等,另外,在军事等领域也有一定的应用需求。 [资料来源:http://think58.com]

1.2嵌入式浏览器的组成和各部份功能说明
下面简介主要的组成部份,其设计原理后面将进行专门论述。
1.2.1 词法分析
主要是针对HTML进行词法分析,该词法分析器实际是通用的,还可用于XML、WML的词法分析,只需替换元素名称即可。 think58好,好think58

[资料来源:http://www.THINK58.com]

HTML词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。 copyright think58 [资料来源:THINK58.com]

1.2.2语法分析
在大型的浏览器中,语法分析通常是独立的模块,但在嵌入式浏览器中,语法分析通常是与布局混合在一起的,即一边进行语法分析,一边布局,不设立相应的数据结构来存储语法分析的结果。语法分析对布局的算法有直接的指导意义。 [来源:http://think58.com]

1.2.3布局
本文中的布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和界面输出。布局算法的好坏直接关系到界面的输出效果,但布局算法也是要根据GUI所能实现的输出效果来设计的,所以,GUI往往成为系统的瓶颈,如果GUI提供的支持有限,即使有再好的布局算法,也是纸上谈兵,无用武之地。 [资料来源:www.THINK58.com]

1.2.4  GUI及软件界面
GUI是指图形用户界面,浏览器无疑是一个图形函数库的大需求者,选择好的GUI环境实属不易,为了能够实现专有的功能,浏览器开发者往往还要对基础的GUI库进行包装、改写,甚至写自己的控件。所有这些,是需要有专业的GUI库开发经验的专职人员来完成。 think58好,好think58

[来源:http://www.think58.com]

GUI的功劳第一在于软件的操作界面,如窗口、菜单、工具条、滚动条等。第二在于主浏览窗体中的图形元素的输出(通常以自画控件的方式)。前者通常直接使用GUI库中的已有控件,编程难度很小,后者主要利用基本的点线函数,编程难度比较大。 内容来自think58

[版权所有:http://think58.com]

1.2.5 JavaScript支持
实际上JavaScript的编译器是开放源码的,而且全世界通用,包括IE、Mozilla、Netscape等浏览器都使用相同的JavaScript的编译器,但为何其对JavaScript的支持不尽相同呢,这是因为JavaScript在浏览器里主要是用于操纵界面元素和与浏览器内部命令进行结合。这实际上是程序员努力的结果,而不是JavaScript编译器的功劳。这其中的机制将在后面专门介绍。

内容来自think58 [资料来源:THINK58.com]

[资料来源:www.THINK58.com]

1.2.6 IO
主要是指通过HTTP协议或文件系统来读取网页内容,网络部份超出了本论文的讨论范围,不予详述,后面将介绍与网络部份的接口。 本文来自think58 [资料来源:THINK58.com]

以上主要按工作的性质进行分类,介绍了浏览器设计的主要几个部份,但与实际开发工作的人员划分不同,实际工作要考虑人员的实际能力和经验,结合要实现的目标,对各部份的投入也有轻重缓急之分,比如,如果没有词法分析的先行实现,语法分析与布局都是纸上谈兵。GUI平台不确定,布局工作也无法展开。 think58好,好think58

[资料来源:http://www.THINK58.com]

1.3开发难度分析
我们也可以看到,要设计效果较好的浏览器产品,决不是三五个人、两三条枪就能办到的,参与工作的人员不仅需要有相关经验,还需要有一定的投入,一方面对程序员艰苦的工作给予鼓励,另一方面也可能需要购买一些成熟的开发包,在基础的开发平台、测试平台上也要有一定的投资,总的来说,开发自主技术的浏览器产品是有一定的风险的,这也是国内目前相关产品为数不多的原因。国外大公司在相关领域的科研与实践已很成熟,在大量投入之后,其产品已为广大用户所接受,国内的企业若从零做起,也很难追赶。因而买断技术,加以改进也可以成为快速成长的一条道路。 copyright think58 [资料来源:http://THINK58.com]

1.4开发的前期策划
以下的工作均是建立在大量的调查基础上的。是浏览器开发前期准备工作所解决的问题。 think58好,好think58

[来源:http://think58.com]

1.4.1 平台的选取
目前的商业化嵌入式操作系统功能完善,但使用费用高昂,使用Linux内核的嵌入式操作系统不仅功能强大,便于开发移植,而且费用低廉,基于Linux的嵌入式系统已日渐成熟,也有相应的窗口系统可以使用,我们使用PC上的Linux来进行浏览器开发,是再好不过的了,软件从PC移植到嵌入式设备只需重新编译一下就可以了(前提是使用的函数库、开发包同时具有PC和嵌入式的版本)。 think58.com

[资料来源:www.THINK58.com]

1.4.2 GUI的选取
GUI的选取是颇费脑筋的问题,一方面要考虑嵌入式系统是否有对应的版本,一方面要考虑该GUI的功能是否足够实用。 think58

[来源:http://think58.com]

目前常见的基于Linux的GUI开发包主要有GTK、FLTK、QT、KDE等,其中FLTK有Micro Window的版本,是比较好的选择,但使用FLTK开发的软件还比较少,对于初学者进入的难度更大,而且目前BUG较多,而GTK比较成熟,使用GTK的软件比比皆是,资料也很丰富,我们的参考对象Gzilla也使用GTK,也就是说如果使用GTK,将有很好的原型进行参考,这使得GTK对于目前毫无GUI开发经验的浏览器开发组而言,充满了巨大的诱惑。考虑到GUI是可以成为独立模块的,如浏览器ZEN的设计,我们决定使用GTK,待时机成熟可换用其它平台,也并非难事。 [版权所有:http://think58.com]

在前期,我们也对FLTK加以了研究,还尝试了以FLTK为基础构建GUI中间层的办法,但由于工作量巨大,初步估算需2万行程序,而不得不暂缓该计划。建立GUI中间层在理论上是可行的,这样,在必要时可以釜底抽薪,替换掉基础的GUI平台,应用软件完全不需修改,但中间层与基础层的接口要重写,其工作量也很大,未必是核算的买卖。 [资料来源:THINK58.com]

1.4.3 确定要实现的基本功能
鉴于对浏览器开发难度的充分考虑,以及现有人员的水平,拟定实现以下功能,以及需要考虑但暂不予实现的功能。

[来源:http://think58.com]

需要实现的包括:
(1) 界面:包括窗口,菜单,输入框,工具条,滚动条等的支持。
(2) 词法分析:必须实现实用的HTML词法分析,支持HTML4.0全部元素。
(3) 实现简单网页的布局:实现对简单网页的查看。
(4) 支持基本IO,支持采用线程的网络传输。 内容来自think58

[资料来源:http://THINK58.com]

需要考虑的功能:
(1) JavaScript支持
(2) 汉字支持
(3) 图片格式支持
(4) 表单支持
(5) 页面元素的消息响应 think58好,好think58

[资料来源:http://www.THINK58.com]

1.4.4 人员分工
由于情况的变动,造成了人员比较紧张,在前期准备工作中,人力充沛,使得收集的资料比较完备,打下了较好的基础。在后期简化了目标,虽然人员减少,但也能够实现主要的工作。考虑到网络是比较独立的部份,把它分出去由专人负责。

think58

[资料来源:http://www.THINK58.com]

[来源:http://think58.com]

 
第二章 HTML词法分析器的设计及其应用

内容来自think58 [来源:http://www.think58.com]

[资料来源:THINK58.com]

HTML词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。

[资料来源:http://THINK58.com]

下面将介绍一个HTML词法分析器——Bit Token的设计思路。 think58 [资料来源:http://www.THINK58.com]

Bit Token是Netbit Browser的HTML词法分析器,使用标准C编程,Netbit Browser是基于Linux/Gtk的浏览器,开放源码项目,网址是http://netbit_browser.myetang.com。 本文来自think58

[资料来源:THINK58.com]

2.1 Bit Token的组成及其功能
Bit Token作为Netbit Browser的词法分析部份,负责对接收的HTML代码进行词法分析,主要的目的是提取网页中元素的名称及其属性,并以恰当的形式(即按一定的数据结构)加以保存,也就是完成了将数据流离散化、结构化的过程。

[资料来源:http://think58.com]

主要由以下几个部分组成:
1、 初始化:完成对数据结构的初始化,主要是分配内存,变量赋初值。
2、 主体的数据流分析:逐字符的进行判断,确定数据的归属类型。
3、 元素的分析:提取元素的名称、属性和值域。
4、 释放:主要是对内存的释放。
2.2 数据结构
typedef struct BitTokenContext
{char * strBuffer;    //当前正在处理的HTML代码
int    bufferLength;
int    curPosition;
char * global_strBuffer;  //全局HTML代码
int    global_bufferLength;
int    global_curPosition;
BitTokenList *tokenList;  //元素节点链表
BitTokenList *tokenList_tail;
BitPTagList pTagList;  //元素名称表,指向静态数据
}BitTokenContext,*BitPTokenContext; think58.com

[版权所有:http://think58.com]

参考文献表 内容来自think58 [资料来源:http://think58.com]

1. John Goerzen著. Linux编程宝典 . 北京:电子工业出版社,2000
2. 杜为文编著. Unix使用指南. 北京:清华大学出版社,1997
3. 潘爱民 著. COM原理与应用. 北京:清华大学出版社,1999

think58

[资料来源:http://www.THINK58.com]

[版权所有:http://think58.com]