【ACCESS精品源码栏目提醒】:网学会员为需要ACCESS精品源码的朋友们搜集整理了【精品】基于MiniGUI的嵌入式Web浏览器的研究与开发 - 其它资料相关资料,希望对各位网友有所帮助!
华中科技大学 硕士学位论文基于MiniGUI的嵌入式Web浏览器的研究 别:硕士 专业:通信与信息系统 指导教师:杨宗凯 20040509 华中科技大学硕士学位论文 摘要 在嵌入式系统上开发web浏览器正逐渐成为一个技术热点,只要是可以接入网络的设备几乎都可以用到web浏览器,但由于浏览器涉及到一个广泛的技术集合,开发浏览器是一项非常巨大的工程,具有一定的商业风险,所以目前市面上的嵌入式浏览器绝大部分都是国外厂商的,真J下国内拥有完全自主产权的嵌入式浏览器很少。
本文首先对嵌入式浏览器的技术、市场现状及其发展前景做了一个简要的介绍和分析,然后阐述了浏览器设计的基本原理以及Monqueror嵌入式浏览器的整体构架,并以konqueror_embedded为研究和开发的原型,开发出一款基于MiniGUl的符合HTMLA.O和W3C标准的嵌入式浏览器。
接下来重点讨论了浏览器中的一些关键模块,DOM模块详细介绍了DOM标准,并采用设计模式的观点对整块代码存结构。
l:做了详细说明,网络模块主要介绍了ghttp库的使用以及cookie韵安现,解析模块则在语法和词法分析的算法上做了详细说明,最后是对浏览器中的一些关键技术的介绍,JavaScript部分主要介绍了如何利用JavaScript引擎SpiderMonkey在浏览器中支持JavaScfipt,Hash部分则简要介绍了根据本课题的实际情况对Flash支持的折衷方案。
这篇论文对浏览器的基本原理和总体结构做了简要介绍,重点介绍了其中的一些关键模块和关键技术的实现,对我国开发自主产权的嵌入式浏览器具有很大的意义。
关键字:嵌入式浏览器,设计模式,MiniGUI,HTML,DOM,cookie,JavaScript Flash 华中科技大学硕士学位论文 Abstract Developing web browser on embed system is becoming a hot point.The browseralmost exists on all the equipments that can
access Internet.But browser refers to a mass oftechniques,protocols and concepts.It is SO big a project to develop browser that there arecommercial dangers.So,embedded web browsers on the market are almost developed byforeign companies and the browsers we have own knowledge property are sO few. This afticle introduces and analyzes the techniques,current market situation anddevelopment foreground of embedded browser in brief at first.Then it explains thefundamental of web browser design and the architecture of Monqueror embedded webbrowser and we take Konqueror-embedded as the studying and developing prototype todevelop a embedded web browser based on MiniGUl which accords with HTM4.0 andW3C specification.After that,it focuses On some key modules:DOM module introducesthe DOM specification in detail and analyzes the architecture of the source code in designpattern opinion;Network module introduce the implementation of cookie and how to use“gllttp”library;Parser module descdbes parsing arithmetic in detail.At last,it introducessome key techniques: JavaScript part introduces how to use JavaScriptengine-SpiderMonkey to support JavaScript in web browser;Flash part introduces thetradeoff way according to the real situation.This article introduces the fundamental andarchitecture of web browser in brief and focuses on the implementation of key modules andtechniques.It is significant for as to develop own knowledge property right embedded webbrowserKey words:embedded browser,design pattern,MiniGUl,HTML,DOM,cookie, JavaScript,Flash ¨ 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者签名:复,1刖 同期:咄,月甲同 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
保密口, 在——年解密后适用本授权书。
本论文属于 不保密吖 (请在以上方框内打“√”)学位论文作者签名:蟊l吲日期:2/”仁年f月审同 指导教师签名:7;j『;g尹沁 同期咖中年f月夕R 华中科技大学硕士学位论文 1绪论1.1引言 在当今的信息社会,网络无处不在。
嵌入式系统发展到一定的阶段后,网络成为系统中的重要组成部分,并且需求越来越大。
针对嵌入式系统的浏览器也应运而生。
浏览器功能强大、界面友好、操作简单,普通用户通过它,对网络资源进行透明访问,在浩瀚如海的网络世界中漫游。
目前,在嵌入式系统中拥有一个web浏览器逐渐成为一种时尚并将会得到普及,如现在高端手机和PDA上已经有了web浏览器。
但浏览器涉及到包括HTML,H”P,CSS,SSL,XML,cookie.JavaScript,DOM等大量标准和协议在内的一个广泛的技术集合,如果组织团队从头开始丌发,不仅具有很大的风险,而且与国外已经成熟的嵌入式web浏览器相比也不具备竞争力。
Linux的丌放
源码为我们提供了一条捷径,在Linux世界里,黑客们为我们编写了大量的嵌入式浏览器,其中最著名的当属基于qt的konquero卜embedded,它不仅实现了上述提到的标准和协议,而且其在速度、显示和易用性方面的表现与其它嵌入式浏览器相比也显得非常的优秀。
本文以konqueror-embcdded为参考原型,歼发基于MiniOUl上的嵌入式浏览器,并重点讨论了其中关键模块的实现,对浏览器中的一些关键技术也做了详细的描述,相信这些工作对开发我国自主产权的浏览器具有重要的参考价值。
1.2嵌入式浏览器概述1.2.1嵌入式系统概述1.2.1.1嵌入式系统的历史及现状 世界上第一台计算机问世后的几十年时间罩,计算机技术得到了迅猛发展,真可谓是日新月异。
伴随着计算机技术的进步,它被用到了越来越多的行业中,起到了越来越大的作用。
为了适应~些行业对产品体积、成本因素的要求,计算机的控制部分被安置在了设备内部,占着非常小的空间,给处理器提供非常有限的内存。
这样的系统就是嵌入式系统。
华中科技大学硕士学位论文 嵌入式系统在20世纪60年代后期,先在通信领域中出现。
七、八十年代后,主要被用在工业领域。
目前,在信息家电、移动通讯、手持设备中、以及工业控制领域中都得到了广泛应用。
嵌入式系统带来的工业产值已经超过了1万亿美元。
1997年.美国嵌入式系统大会(Embedded System Conference)的报告指出:未来5年,仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。
美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”111。
1.2.1.2嵌入式系统的概念 所谓嵌入式系统(Embedded System)就是:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序等四个部分组成。
可以实现对其他设备的控制、监视或管理等功能。
嵌入式系统非常的多样化,不同的系统差别是非常大的。
嵌入式系统同普通计算机系统相比,主要具有以下几个特点:1、从整个行业来看 嵌入式系统涉及的领域非常广,需求相差很大,不可能由少数的公司、少数产品垄断全部市场,很利于各种小规模高技术公司发展、创新。
而通常的计算机行业被认为是由Wintel(Microsoft和Intel 90年代初建立的联盟)垄断的。
2、系统应用范围 嵌入式系统是面向具体的应用的。
根据不同应用的不同需求,对软件、硬件进行仔细挑选、定制,去掉冗余,以获得更高的性能。
而普通的计算机系统的通用性比较高。
除了用户软件需要自己开发以外,其他的底层软件、硬件都可以得到很好的支持。
3、系统本身 嵌入式系统中,CPU集成度很高,把许多普通计算机中由板卡完成的任务集成到芯片内部,减小功耗、体积,提高工作效率。
为了提高运行速度和系统的可靠性,软件一般固化到芯片上,并尽量减少编译后二进制代码的跃度。
丽普通计算机软件是临 2 华中科技大学硕士学位论文时存放在磁盘上的,由于对软件运行空问限制不严格,二进制代码的长度会稍长一些。
1.2.2浏览器概述 其实,浏览器也是一种应用软件。
用户用它,可以在www(Word Wide web)上搜寻、查看各种信息。
所有这些信息都是以网页的形式存在的。
“browser”这个词比“Web”要早出现,它原本只是用户界面中的一个普通术语。
当时,用户界面是用来在线浏览文本文件的。
第。
个图形用户界面的Web browser出现后,这个术语也被用到web上。
从技术上讲,Web browser是一个客户端(client)程序。
它用HTTP(HypertextTransfer Protoc01)协议,通过Internet向Web servers发送浏览器用户的请求。
1992年,Mosaic出现,它是第一个图形用户界面的浏览器。
Mosaic是早期浏览器的一个商业版本。
后来,NetScape Navigator采用了许多它的用户界面的特性。
NetScape Navigator是第一个得到广泛使用的浏览器。
随后,Microsoft推出了他们自己的浏览器MicrosoftInternet Explorer。
NetScape Navigator和Microsoft Internet Explorer相互竞争,成为了两个最流行的浏览器。
绝大多数的Internet用户只意识到它们两个的存在,而忽略了许多其它的测览器。
像一些在线服务(如:American Online,Compuserve,Prodyg),它们原来也有自己的浏览器。
现在,它们都提供NetScapc和Microsoft的浏览器。
Lynx是一种纯文本浏览器,只在UNIX shell和VMS用户中使用。
Opera则是另一个后来提供的浏览器。
NetScape Navigator和Microsoft Internet Explore都是图形浏览器。
图形浏览器既可以浏览图形,又可以浏览文本。
大部分的现代浏览器还能提供多媒体信息,包括声音、图像。
不过,声音和图像中的一些格式需要对应的plug-in。
1.2.3嵌入式浏览器的特点 嵌入式浏览器从功能上、技术上来说, 和桌面系统中使用的浏览器没有什么人的区别。
但由于它处于嵌入式的特殊环境中, 拥有了~些自身的独特之处。
1、从整体看,嵌入式浏览器具有多样性 嵌入式系统是针对各种具体设备设计的,设备的多样性决定了系统的多样性,也 3 华中科技大学硕士学位论文就决定了嵌入式浏览器的多样性。
根据具体应用的需求,对嵌入式浏览器进行定制是必须的,在编制代码时,要充分考虑到这一点,使之能方便的进行修改、裁剪。
桌面市场里,Windows和IE统一天下。
嵌入式浏览器市场不会出现这种局面。
产品都是针对特定设备开发,不具有全部功能,不能通用。
2、从系统看,嵌入式浏览器的地位举足轻重 桌面计算机环境中,操作系统处于硬件和应用程序之间。
对下,操作系统管理硬件设备;对上,操作系统为应用程序提供必要的接口。
所以,操作系统是整个计算机系统最核心的部分。
浏览器只是操作系统支持的众多应用程序中一个。
软件商可以把操作系统和浏览器进行捆绑销售。
嵌入式系统中,情况完全不同。
嵌入式操作系统和嵌入式浏览器关系是非常密切的,甚至是不可分割的。
嵌入式浏览器是嵌入式操作系统最熏要的应用软件,甚至可能成为唯一的直接支持的应用软件。
其他的应用都可以通过plugin接口、或者直接用HTML、Javascript及其扩展语言来实现121。
在实现互连网的嵌入式系统中,嵌入式操作系统的核心地位和图形用户界面的开发接口作用在逐渐淡化。
嵌入式操作系统成为了浏览器和硬件系统之间的驱动和底层管理软件。
而嵌入式浏览器将成为系统核心,向上层应用软件提供plugin接口,支持各种应用。
不过,因为嵌入式系统多样化,嵌入式浏览器不能和嵌入式操作系统~起捆绑出售。
3、从硬件看,嵌入式浏览器要求特殊 任何软件的实现,都离不开硬件系统的有力支持。
嵌入式系统对硬件有一些特殊要求。
为节省硬件成本,保证比较低廉的价格。
要注意性能价格比。
选择核心处理j巷片、RAM、FLASH存储器等硬件时,能省就省。
为满足非PC上网设备对系统功耗的限制,要选择省电、低散热量的器件。
一般采用较低主频的CPU。
4、从软件看,嵌入式浏览器的特殊性 由于嵌入式系统、硬件设备的特殊要求,嵌入式浏览器的代码编制有一些需注意的地方。
4 华中科技大学硕士学位论文 浏览器最基本功能就是要能够浏览各种网页,嵌入式浏览器也是这样。
因此,它要支持HTML标记语言、HTTP协议、英文显示、或包括中文在内的双字节语言显示。
并且,由于使用者一般都有获取文字、图像、声音、视频等信息的需求,嵌入式浏览器也要支持这些格式。
1.2.4嵌入式浏览器的现状及发展前景 近几年,嵌入式市场迅速崛起,许多大大小小的公司都相继投入其中,出现了一些已经商业化的产品。
但没有任何一个产品,能够像Microsoft的Interact Explorer和Netscape的Navigator在Pc市场中一样,占垄断地位。
在嵌入式的世界里,完美的HTML显示不是必须的。
好的技术应该是能够象显示老的文本格式一样,简洁的显示现在的网页。
如在蜂窝电话或者Intemet设备中,用户需要迅速访问股票报价、体育比赛结果、全球定位数据等等。
嵌入式浏览器要能够灵活的根据具体应用进行定制。
商家根据各自不同的侧重点,发展着自己的产品。
多样的需求为众多商家的发展提供了机会。
他们投身到嵌入式市场中,促进了技术的进步、市场的发展。
根据美国international Data Corporation研究表明,和1997年的4%相比,2001年在美国,Intemet设备将会占整个信息访问设备领域的42%。
可见,嵌入式系统的发展速度之快。
嵌入式浏览器的技术仍然在向前发展,除了继续跟随HTML、帅、SSL、JavaScript等协议或语言的新版本,继续升级以及支持更多的应用外,还在继续拓展其他的应用模式和领域。
如测览器技术和数字电视机顶盒技术集成,实现完整的数字电视软件平台【3l。
浏览器技术和Java技术的结合,解决实时性强的动态视频处理。
把浏览器技术应用到更多传统的电器领域,以提供交互式的应用等等。
这些都是很好的发展方向,有着更好的发展前景。
1.3课题来源 本论文基于一个联合课题的研究内容,该课题来源于长江通信股份有限公司和华中科技大学的一个合作,从事无线多媒体终端的研究与开发工作。
这个课题在嵌入式 华中科技大学硕士学位论文系统的研究与发展的项目中具有代表性。
本文的内容是这个课题中的一个予课题,基于MiniGUI的嵌入式浏览器的研究与开发。
1.4研究目标和研究内容 本文的研究目标是研究嵌入式浏览器的结构和关键技术,并在无线多媒体终端上设计并实现基于MiniGUI的嵌入式浏览器,以满足用户浏览web网页的需求。
本文讨论的几个方面是: (1)DOM标准及实现。
(2)HTML语法相关概念的简要介绍以及词法语法解析的实现。
(3)介绍gtItlp库的使用,并重点介绍了cookie的实现。
(4)重点研究了JavaScript引擎的使用方法,描述了如何在浏览器中实现对JavaScript的支持。
(5)简要介绍了如何在浏览器中实现对Flash的支持。
1.5课题的意义 随着第一款具有自主知识产权的“中国芯”的诞生,从芯片设计制造、硬件设备制造到操作系统开发、系统集成开发一条龙的产业链在中国大地上逐渐形成,生产拥有完全自主知识产权的嵌入式系统成为可能并逐渐在中国形成一个热门,而作为嵌入式系统中最重要的应用软件之一的嵌入式浏览器也逐渐受到重视并形成了一个新的研究热点,研发嵌入式浏览器的公司在最近的一年里也纷纷涌现。
然而,嵌入式浏览器的开发涉及到一个广泛的技术标准集合,并且其中一些标准还在不断的发展变化,这就意味着浏览器的实现不仅非常复杂,而且其构架还必须具有较好的可扩展性,再加上国外的公司在这方面起步早,而且已经研发出成熟的产品,因而国内公司投入大量人力去研发嵌入式浏览器常常具有较大的风险,目前拥有完全自主产权并进入实用阶段浏览器的国内公司少之又少,绝大部分还只处于宣传阶段。
本文研究和实现的基于MiniGUl的嵌入式浏览器monqueror是以konqucror_embedded为参考原型而_丌发的。
Konquer0卜embcddcd是Linux下著名的嵌 6 华中科技大学硕士学位论文入式浏览器,它几乎支持所有的与浏览器相关的标准和协议,当然与其丰富功能相对应的是其庞大的代码量,在实现monqueror的过程中,我们大量借用了konquemf-embedded的代码及其设计构架,并对其DQM的实现部分做了较为详细的研究,对词法语法解析模块也做了较为详细的介绍,除此之外,还详细介绍了著名的JavaScript引擎SpiderMonkey的使用方法,以及如何利用该引擎在浏览器中实现对JavaScdpt的支持,由于网络部分是较为独立部分,我们利用gIlllp库完全改写了网络部分并在其中加入对cookie的支持,这些工作对开发和推广嵌入式浏览器具有重大意义。
1.6本文的组织结构 本文通过对Linux下著名的嵌入式浏览器konqueror-embedded的研究,重点讨论了浏览器中一些关键模块和关键技术的实现,其主要内容如下: 第二章主要介绍了浏览器设计的基本原理及Monqueror嵌入式浏览器的总体设计,重点介绍了monqueror嵌入式浏览器中的整体架构及其代码实现的类结构。
第三章重点讨论了W3C所制定的DOM标准,并以设计模式的观点对标准的代码实现在结构上做了较为清晰的分析,对大型软件设计具有启发意义。
第四章是解析模块,首先介绍了HTML语法相关的概念。
然后介绍了实现词法语法分析的代码,最后通过一个简单的例子阐明了实现词法语法分析的算法。
第五章是网络模块,首先介绍了gllttp库的使用方法,然后重点介绍了cookie的协议过程以及如何实现对cookie的支持。
第六章介绍了如何在浏览器中实现对JavaScript的支持。
这一部分首先简要介绍了JavaScript引擎SpiderMonkey的使用方法,采用从一般到特殊的讲解方法,先介绍JavaSeript实现的一般原理,然后介绍如何在浏览器中实现对JavaScript的支持。
第七章介绍了在嵌入式这种特殊环境中如何对Flash进行支持。
7 华中科技大学硕士学位论文 2浏览器的设计2.1浏览器设计的基本原理 浏览器软件安装在客户端,是用户使用网上资源的强有力手段。
简单来讲,浏览器是使用HrrP(HyperText Transfer Protoc01)14,Sl协议,通过网络,从服务器上得到HTML(HyperText Markup Language)【6l资源,对其进行解释、分析,并最后将其最示在屏幕上的软件。
现在浏览器已经发展的很成熟了。
NetScape Navigator和Microsoft internet Explorer己经成了HTML浏览器的事实上的标准。
浏览器支持的功能也越来越强,不断的支持新的功能、支持动态的网页、支持多媒体等等信息。
不过,它仍然有着很大的发展空间,仍需要继续向前发展。
但不管浏览器如何发展,从功能上讲一个浏览器必须至少包含网络模块,解析模块,显示模块,uI模块,如果浏览器符合W3C所制定的标准,那么浏览器还必须包含DOM模块。
图2-1显示了各模块划分以及它们之间的相互依赖关系。
一繁 熙警 一/ // \ 图2—1模块划分及其之问的相互依赖关系 一t哆 斗/ 图中各模块的依赖关系描述如下: 网络模块:网络模块可以看作是一个相对较为独立的模块,其主要作用就是采用HrrP协议下载HTML网页,该模块在两种情况下可能会被触发运行,一是来自UI模块的消息,当用户用鼠标点击一个新的链接或在地址栏输入新的网址,则U1模块将会调用网络模块;二是来自解析模块,当解析模块解析得到如“image”等标记时,也可能调用网络模块从指定的地址取得数据。
华中科技大学硕士学位论文 解析模块:解析模块是一个与DOM模块联系很紧密的模块,当解析模块解析到一个HTML元素后会利用DOM模块提供的接口将该元素插入到DOM树中,当网络模块下载完毕~页HTML网页后,解析模块将被调用。
DOM模块:DOM模块负责创建、销毁、管理DOM树,通过解析模块得到HTML元素,然后利用该元素创建DOM树,显示模块利用该DOM树可以创建相应的Render树,ul模块可以利用DOM模块提供的方法对DOM树进行操作。
显示模块:负责依据DOM树来创建Render树,显示HTML元素,用户也有可能通过UI模块来影响显示模块(譬如通过鼠标点击改变字体和颜色)。
uI模块:UI模块是指浏览器的框架外观,处理uI事件如键盘、鼠标事件以及一些与设备无关的uJ事件如焦点的变化。
uI模块其实与系统的关系更密切(操作系统或图形系统),每一套系统都会提供一套良好的图形界而和消息传递机制,如MiniOUl的消息机制就类似与Windows的消息机制用,而QT则采用了signal/slot(信号/插槽)机制【8,91,利用这套机制,应用程序可以很好的接收.