




已阅读5页,还剩48页未读, 继续免费阅读
(交通信息工程及控制专业论文)基于MiniGUI的嵌入式浏览器的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着多媒体技术、通讯技术相结合的信息时代的快速发展和互联网的广泛应用,嵌 入式技术越来越和人们的生活紧密结合。未来嵌入式技术的发展方向是嵌入式设备可以 接入互联网,享受到互联网上丰富多彩的资源。这样就需要提供用户一个接入互联网的 用户界面。嵌入式浏览器无疑是满足这个条件的最好的用户界面。 由于大多数嵌入式设备具有内存小、f l a s h 空间小等硬件条件的限制,所以要求应 用于其上的软件除了稳定以外,还需要二进制代码小、占用内存少。针对该问题,本文 在“小而快”的图形系统m i n i g u i 的基础之上,设计一款轻量级嵌入式浏览器m g d i l l o 。 本文以l i n u x 操作系统为应用背景,分析了嵌入式浏览器的几项关键技术,给出了 相关技术的具体实现,其中,解析模块在词法分析基础上给出了m g d i l l o 嵌入式浏览器 解析h t m l 页面的算法,网络模块主要给出了网络相关的设计模型和m g d i l l o 中网络 传输的实现,最后结合图形系统m i n i g u i ,设计了m g d i l l o 的u i 模块,从而开发出一 款基于m i n i g u i 的可移植性强、占用内存小同时运行速度快的嵌入式浏览器m g d i l l o 。 这些内容详实地分析了w e b 浏览器的整体架构和各个模块以及模块之间的关系,希望 能对轻量级浏览器的开发提供借鉴意义,同时也希望能够为m i n i g u i 和m g d i l l o 向其它 嵌入式平台移植提供帮助。 关键词:嵌入式浏览器,m g d i l l o ,m i n i g u i ,l i n u x a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fm u l t i m e d i aa n dc o m m u n i c a t i o nt e c h n o l o g i e sa n dt h e p o p u l a r i t yo fi n t e m e t ,e m b e d d e d t e c h n o l o g ya f f e c t s c o m m o nl i v e sm o r ea n dm o r e s i g n i f i c a n t l y t h ed e v e l o p m e n td i r e c t i o no fe m b e d d e dd e v i c e si st om a k et h o s ed e v i c e s c o n n e c t e dw i t hi n t e m e t ,s ot h e yc a ns h a r ea b u n d a n tr e s o u r c e si ni n t e r a c t w es h o u l dp r o v i d e u s e r sw i t hb e t t e ri n t e r f a c et oi n t e m e t t h ee m b e d d e db r o w s e ri sag o o dc h o i c e b e c a u s em a n ye m b e d d e dd e v i c e sh a v et h el i m i t a t i o no fs m a l lm e m o r ya n ds m a l lf l a s h , e m b e d d e ds o f t w a r e sm u s tb en o ts t a b l eb u ts m a l la n df a s t f o rt h ep r o b l e m ,w ed e v e l o pa e m b e d d e dw e bb r o w s e rm g d i l l ob a s e do nm i n i g u lw h i c hi ss m a l la n df a s t t h i sa r t i c l e ,w i t hl i n u xf o rb a c k g r o u n da n do p e nd e s k t o pb r o w s e rf o rp r o t o t y p e , a n a l y z e st h ec o r r e s p o n d i n gt e c h n o l o g i e sa n dp r o v i d e si m p l e m e n t a t i o n so ft h e s et e c h n o l o g i e s , f o ri n s t a n c e ,p a r s em o d u l ed e s c r i b e sp a r s i n ga r i t h m e t i ci nt h eb a s eo f w o r d si nd e t a i l ;n e t w o r k m o d u l eg i v e st h ei m p l e m e n t a t i o no fn e t w o r kp r o t o c o l s a tl a s t ,t h i sa r t i c l ei m p r o v e su i m o d u l ew i t ht h eg r a p h i cs y s t e mm i n i g u i ,a n dd e v e l o p sap o r t a b l e ,s m a l lm e m o r ya n df a s t e m b e d d e db r o w s e rm g d i l l ob a s e do nm i n i g u i t h e s ea n a l y s ea r c h i t e c t u r eo fb r o w s e ra n d i n t e r f a c e sa m o n gt h e s em o d u l e s ,w h i c hc a nb eu s e do fd e v e l o p i n ge m b e d d e db r o w s e r , a n d p r o v i d eh e l pf o rp o r to fm i n i g u ia n dm g d i l l o k e yw o r d s :e m b e d d e db r o w s e r , m g d i l l o ,m i n i g u i ,l i n u x 论文独创性声明 本人声明:本人所呈交的学位论文是在导师的指导下,独立进行研究工 作所取得的成果。除论文中已经注明引用的内容外,对论文的研究做出重 要贡献的个人和集体,均己在文中以明确方式标明。本论文中不包含任何 未加明确注明的其他个人或集体己经公开发表的成果。 本声明的法律责任由本人承担。 论文作者躲砀硝歹 训g 年f 月7 日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属学 校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成 果时,署名单位仍然为长安大学。 ( 保密的论文在解密后应遵守此规定) 论文作者签名:杨均争 导师签名: 功g 年j 月7 日 伽g 年歹月7 日 长安人学硕士学位论文 1 1 研究背景和意义 第一章绪论弟一早珀t 匕 目前,在嵌入式系统中拥有一个w e b 浏览器逐渐成为一种时尚并将会得到普及, 如现在高端手机和p d a 上已经有了w e b 浏览器。但浏览器涉及到包括h t m l ,h t t p , c s s ,s s l ,c o o k i e ,j a v a s c r i p t 等大量标准和协议在内的一个广泛的技术集合,如果组 织团队从头开始开发,不仅具有很大的风险,而且与国外已经成熟的嵌入式w e b 浏览 器相比也不具备竞争力。l i n u x 的开放源码为我们提供了一条捷径,在l i n u x 世界里, 程序员们为我们编写了大量的嵌入式浏览器,它们不仅实现了上述提到的部分标准和协 议,而且在其速度、显示和易用性方面的表现与部分非开源嵌入式浏览器相比也显得非 常的优秀。 m i n i g u i 是一个专门面向嵌入式系统的图形用户界面支持系统,在软件体系上,它 介于内核和应用程序之间。m i n i g u i 具有良好的软件架构,通过抽象层将m i n i g u i 上 层和底层操作系统隔离开来。基于m i n i g u i 的应用程序一般通过a n s i c 库以及m i n i g u i 一 自身提供的a p i 来实现自己的功能;m i n i g u i 中的“可移植层 可将特定的操作系统及 底层硬件的细节隐藏起来,而上层应用程序则无需关心底层的硬件平台输出和输入设 备,所以可以方便地将m i n i g u i 移植到多种嵌入式操作系统之上,而且库文件小,运 行速度快,方便在嵌入式系统中进行应用开发。与其他嵌入式图形支持系统相比 m i n i g u i 具有以下优势: 全部功能的库文件大小为3 0 0 k b 左右; 可配置:可根据项目需求进行定制配置; 移植性好:m i n i g u l 可以在l i n u x 、u c l i n u x 、v x w o r k s 、u c o s i i 等操作系统上运 行。 本文就是以l i n u x 平台上的丌源浏览器为参考,如l i n k s 的解析算法、d i l l o 网络 传输模型的设计方法和k o n q u e r o r 排版引擎等,开发基于m i n i g u i 上的嵌入式浏览器, 并重点讨论其中关键模块的实现,对浏览器中的一些关键技术也做详细的描述。这些内 容详实地分析了w e b 浏览器的整体架构和各个模块以及模块之间的接口,希望能对轻 量级浏览器的开发提供借鉴和帮助。 第一章绪论 1 2 嵌入式浏览器的发展现状 目前市场上已经出现了一些嵌入式浏览器的产品,它们根据需要在不同的环境中被 使用。下面分别介绍几个流行的嵌入式浏览器的特点。 1 、i n t e m e te x p l o r e rf o rw i n c e 这是i n t e m e te x p l o r e r 的w i n d o w s c e 版,意味着用户为了使用它,就必须选用基于 w i n c e 平台的产品。随着微软势力在掌上终端领域的发展,w i n c e 版的也将得到越 来越多的应用。但是i n t e m e te x p l o r e r 未开放源码,不利于开发和研究【1 1 。 2 、o p e r a o p e r a 是挪威一家专注于浏览器开发的软件公司o p e r a 开发的一款支持多种功能的 网络浏览器。o p e r a 严格执行w 3 c 网页标准,不支持其它扩展标准和a c t i v e x ,不支持 某些只对兼容的页面,这样浏览器安全性高,兼容性低。另外就是闭源,而且最为 令人头疼的是价格极其昂贵【羽。 3 、s a f a r i s a f a r i 是世界上最快,最便于操作的网页浏览器之一。根据官方介绍,桌面环境中, s a f a r i3 1 版载入页面的速度是m7 的1 9 倍,是f i r e f o x2 的1 7 倍,运行j a v a s c r i p t 的 速度则是其他浏览器的6 倍。s a f a r i 使用了k d e 的k h t m l 作为浏览器的运算核心, 功能比较齐全。但是价格极其昂贵,仅仅适合于高端市场。 4 、i p a n e l i p a n e l 是深圳市茁壮网络技术有限公司开发的一款浏览器,主要针对目前中国数字 电视领域。产品有机顶盒领域的i p a n e li p t v 终端浏览器,嵌入式股票系统的i p a n e l 股 票系统,数据广播系统前端播出服务器i p a n e lo c g 。由于公司本身就是专注于数字电视 软件开发,所以其产品仅仅侧重于数字电视领域3 1 。 5 、d i l l o d i l l o 的作者一开始就致力于程序速度和大小,因此该浏览器是世界上最小、速度最 快的浏览器之一 4 1 。经过s r t i p 的可执行文件大小只有3 0 0 k b 2 1 。当然这还未加上那些动 态链接库的大小。把图形库静态编译到可执行文件,最后的大小是1 5 m b 左右。但是 d i l l o 也有很多缺点,比如很多功能不支持,比如j a v a s c r i p t ,f l a s h ,包括很多h t m l 复杂 的元素也不支持。 6 、l i n k s 2 长安大学硕士学位论文 l i n k s 从1 9 9 9 年开始开发。在一开始,l i n k s 不支持图形界面,只有字符界面,类 似于l y n s 。后来随着越来越多的开发者加入,l i n k s 实现了更多的功能,比如增加了图 形界面,支持j a v a s c r i p t 。并且l i n k s 还能够运行于多个平台,如u n i x e s ,b e o s ,o s 2 , w i n d o w s 。尽管它对j a v a s c r i p t 的支持不如,m o z i l l a 等大型浏览器,但是对于很多 w e b 站点来说己经足够了。l i n k s 支持h t m l 4 0 1 ,所以它能够支持f r a m e 等元素。l i n k s 不支持插件,因此不支持j a v a s c r i p t 和f l a s h 。 所以,本文就是在研究这些开源浏览器的基础之上,采用开源m i n i g u i 作为嵌入 式图形系统,设计一款功能比较简单、但是又可以根据实际需要进行功能扩展的嵌入式 浏览器,以达到可以在嵌入式设备上进行联网的功能。 1 3 本文完成的主要工作 本文的主要研究是嵌入式浏览器的结构和关键技术,并在智能手机、机顶盒以及其 它智能终端上设计并实现基于m i n i g u i 的嵌入式浏览器,以满足用户浏览w e b 网页的 需求。 本文主要完成以下几个方面的工作: 。 ( 1 ) 在进行市场调研后,对国内外嵌入式浏览器发展现状进行了归纳和总结,发现。 了大多数嵌入式浏览器都有占用资源多的不足,得出轻量级可扩展浏览器也有很大的市 场前景。 ( 2 ) 从分析通用浏览器的总体结构入手,构建m g d i l l o 的体系结构,规划m g d i l l o 的功能模块,并设计主要的数据结构。 ( 3 ) 在网页解析过程中,采用边提取词法单元边分析整合的设计方法,以实现 m g d i l l o 浏览器中h t m l 词法解析的功能。 ( 4 ) 在网络模块中,对比几种并行处理网络传输模式的基础上,采用单进程异步i o 模型,以实现m g d i l l o 中网络传输w e b 页面的功能。 ( 5 ) 针对u i 模块的开发,采用m i n i g u i 方便的接口函数以实现浏览器的人机界面, 利用m i n i g u i 的图形抽象层和输入抽象层,以达到方便将m i n i g u i 移植到各种不同的 操作系统平台上的目的。 ( 6 ) 最后将对嵌入式浏览器进行模拟环境测试和目标环境测试,来评判嵌入式浏览 器是否满足预期的技术指标。 第一章绪论 1 4 本文的组织结构 本文重点讨论浏览器中一些关键模块,研究关键技术的具体实现,以期设计一款适 合在多种嵌入式平台上运行的轻量级的嵌入式浏览器,其主要内容如下: 第二章主要研究m g d i l l o 嵌入式浏览器的总体设计,重点分析m g d i l l o 嵌入式浏览 器中的整体架构及其内部核心结构。 第三章是解析模块,首先分析d i l l o 中h t m l 解析设计方法,然后研究实现词法语 法分析的代码,并通过一个简单的例子阐明实现词法语法分析的算法。 第四章是网络模块,重点分析网络传输的相关模型以及m g d i l l o 中网络模型的具体 实现。 第五章u i ( m i l l i g u i ) 模块,分析m i n i g u i 在嵌入式系统中的应用,以及m i n i g u i 的移植技术和嵌入式浏览器u i 模块实现。 第六章测试,从模拟环境和目标环境对嵌入式浏览器进行不同平台测试,从浏览器 对图片和标准协议的支持情况对嵌入式性能和功能进行测试,然后得出结论。 总结与展望,总结,并提出了浏览器的一些改进思想。比如在浏览器中实现对 j a v a s c r i p t 的支持,在嵌入式这种特殊环境中对f l a s h 进行支持等等。 本文的组织结构如图1 1 所示: 4 长安大学硕1 :学位论文 = i - - 二 _ i _ j _ _ - - :- - _ - i i 聂_ l - i ? 。二? ? 二二一二i : r7 r 一o ;: 弋夕 测试 l ( 第六章) i i 弋夕 i 总结与展望 图i i 本文组织结构图 5 第二章嵌入式浏览器的总体设计 第二章嵌入式浏览器的总体设计 浏览器软件安装在客户端,是用户使用网上资源的强有力手段。简单来讲,浏览器 是使用h t t p ( h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 协议,通过网络,从服务器上得到h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ) 资源,对其进行解释、分析,并最后将其显示在屏幕上 的软件。本章研究嵌入式浏览器的体系结构、总体功能模块和提出预期需要达到的性能 指标等,下面是详细设计过程。 2 1 浏览器体系结构 从体系结构上,可以将浏览器分为四层:应用层、中间层、操作系统层、硬件层, 如图2 1 所示: 浏览器 解析u i 模块网络 么1么 一一一 一 m i n i g u i 圭妾口 彳f 协 议 弋 7 乡 栈 g l i b 、f r a m e b u f f e r 等 - - _ 多 一一一一一一一 一 弋。 l i n u x u c l i n u x u c o s - i i v x w 。r k s 一一一一 一一一一一一一 一 x 8 6 、a r m 、m p s 、p 。w e r p c 、m 6 8 k 应用层 中间层 操作系统层 硬件层 图2 1 浏览器体系结构图 应用层:这一层主要是浏览器的前端应用,每一个应用都依赖于中问层的组件。应 用层的程序主要包括浏览器的网络通信、解析和显示功能。这些应用在中间层相应组件 库的帮助下来完成相应的功能。例如,用于显示用户界面的显示功能模块依赖m i n i g u i 的图形库,用于网络传输的网络功能模块依赖i s j 层的g l i b 库以及底层的t c p i p 协议, 6 长安人学硕十学位论文 而应用层的所有功能程序都依赖中间层的标准c 库等。 中间层:中间层主要包括图形系统m i n i g u i 、标准c 库、g l i b 库、f r a m e b u f f e r 驱 动和协议栈,其中,图形中间件m i n i g u i 主要用来为浏览器界面的定制、浏览器的文 本显示、图片显示、控件制作服务的。标准c 库主要是提供基本的字符串处理功能、 标准i o 功能、文件i o 功能、内存分配功能等。g l i b 库是g t k + 的一个基本依赖库,它 是l i n u x 平台下最常用的c 语言函数库,它具有很好的可移植性和实用性,主要提供链 表操作功能、哈希表功能、内存管理功能、酉i b 线程管理和对象处理机制等,为上层应 用程序的网络功能模块提供帮助。f r a m e b u f f e r 是祯缓冲的意思,是对图形设备的一个 提取和抽象。它把一些视频设备描绘成一个缓冲区,允许应用通过f r a m eb u f f e r 所定义 的良好接口访问图形设备,这样应用也就不需要关心具体的硬件细节了。它像一块画布 一样被使用在m i n i g u i 的图形抽象层。协议栈包括了t c p i p 协议,上层的h t t p 标准 通信就是建立在t c p 通信协议的基础之上的,用户只需要调用上层的网络接口函数就 可以完成网络传输功能。 操作系统层:操作系统层主要包括了l i n u x 、u c l i n u x 、u c o s i i 、v x w o r k s 、e g o s 等十多中操作系统,m i n i g u i 的底层抽象层( 图形抽象层和输入抽象层) 为应用程序的。 开发提供了很方便的移植接口,只要操作系统中提供图形层和输入层所需要的驱动实 现,就可以将m i n i g u i 移植上去。所以可以将m i n i g u i 方便的移植到多种操作系统之 上。 硬件层:硬件层为上层应用软件和系统软件提供多种嵌入式硬件平台的支持,主要 包括a r m 、m i p s 、c o u ) f i i 也、x s c a l e 、x 8 6 等。用户只需要将操作系统移植到相 应的硬件平台上,然后结合实际的应用背景选择相应的硬件平台即可,不必过多考虑硬 件细节问题,因为在m i n i g u i 的抽象层已经作了屏蔽。 2 2 浏览器总体功能模块 浏览器的运行过程可以这样描述,首先浏览器需要得到一个u r l ,这个u r l 可以 由用户在人机交互界面输入,也可以是通过点击网页中的一个链接。接着浏览器根据这 个u r l 的服务器地址部分查询d n s 服务器,等待口地址的获得,然后根据这个m 地 址同服务器建立t c p 连接,并且发送h t t p 请求。w e b 服务器反馈这个请求,浏览器 接收服务器的响应接收数据,并且分析响应,这个过程中可能会建立附加连接,以提取 内嵌的资源。这个时候浏览器可能已经开始显示第一个h t t p 响应中接收到的h t m l 7 第二章嵌入式浏览器的总体设计 页面,同时开始下载其嵌套的资源。这些资源可能不是在一个服务器上,浏览器在这些 资源到达的时候开始显示它们。当整个h t m l 页面和它所嵌套的元素全部接收并显示 完之后,浏览器的该次任务完成。从用户输入一个u r l ,到最后结果呈现在用户面前, ,浏览器的工作过程如图2 2 所示: 用户输 浏览器客户端 d n s 服务器 求 w e b 服务器 图2 2w e b 浏览器工作示意图 从浏览器工作示意图说明可以看到,可以将浏览器分成五大功能模块,如图2 3 所 示。从图2 3 上面可以看到整个浏览器的工作过程以及相互关系,按照功能模块来分, 一个浏览器软件基本是由下面几个模块组成的:人机交互( 用户界面) 模块、缓存管理模 块、网络传输模块、h t m l 语言解析模块和页面布局显示模块。这样的划分并不是固定 的,在实现过程中,这些模块之间是紧密相连的,很难被严格地区分开来。 图2 3 模块划分及其之间的相互依赖关系 下面对于这几个模块进行简要的说明: 长安大学硕士学位论文 网络模块:网络模块可以看作是一个相对较为独立的模块,其主要作用就是采用 h t t p 协议下载h t m l 网页,该模块在两种情况下可能会被触发运行,一是来自u i 模 块的消息,当用户用鼠标点击一个新的链接或在地址栏输入新的网址,则u i 模块将会 调用网络模块;二是来自解析模块,当解析模块解析得到如“i m a g e ”等标记时,也可能 调用网络模块从指定的地址取得数据。 解析模块:解析模块是一个与网络模块联系很紧密的模块,当网络模块下载完毕一 页h t m l 网页后,解析模块将被调用。 缓存管理模块:高速缓存模块介于网络传输层和h t m l 解析层之间。当用户申请 一个新的对象时,先去调用高速缓存模块,如果命中,直接将数据返回;如果未命中, 就需要根据u r l 同服务器建立新的连接,下载数据。 布局显示模块:负责依据h t m l 网页来布局h t m l 元素并将其显示出来,用户也 有可能通过u i 模块来影响显示模块( 譬如通过鼠标点击改变字体和颜色) 。 u i ( m i n i g u i ) 模块:u i 模块是指浏览器的框架外观,处理u i 事件如键盘、鼠标 事件以及一些与设备无关的u i 事件如焦点的变化。u i 模块其实与系统的关系更密切( 操 作系统) ,每一套系统都会提供一套良好的图形界面和消息传递机制,如m i n i g u i 的消 息机制就类似与w i n d o w s 的消息机制。可以这样说,当整个浏览器运行起来后,模 块是消息流动的源头,通过u i 模块来触发各种消息的流动。 对应各个功能模块,嵌入式浏览器内部核心实现如图2 4 所示: n t e r 彘略e 1 j fj e 、a 、e j 1 l g i f h c a c h e 、 j e m n g u i n e t w o r k j ,j k 啪f r 。a m 砌e b 、u f f m e r e l i b c t c p i p ej j 。p e r a t ;n gs y s t e m 图2 4m g d i l l o 系统内部架构图 m g d i l l o 先通过t c p i p 协议、h t t p 协议从网络取得数据,然后由h t m l 解析器 9 第二章嵌入式浏览器的总体设计 进行解析,根据解析的内容类型例如图片或者示j a v a s c r i p t 数据等,采用相应的数据处 理方法,最后统一排版在浏览器窗口显示出来或将数据进一步反馈给其他用户接口。根 据架构图,可以知道需要m g d i l l o 支持的技术规范包括h t m l 4 0 、j a v a s c r i p t ,各种图片 格式以及g i f 动画等。 一 2 3 浏览器主要数据结构 嵌入式浏览器中采用的主要数据结构如图2 5 所示。 图2 5 主要数据结构 d n s s e r v e r 结构主要是用在d n s 域名查询中,它用来保存d n s 查询的结果,p 地址,然后根据查询得到p 地址建立t c p 链接。 i o d d a t at 结构是在网络模块中作为输入输出使用的结构体,进行h t t p 请求时j 将请求队列保存到结构中然后进行写操作,当收到h t t p 应答的时候,将接收到的数据 保存到结构体中以待分析处理。 c a c h e c l i e n tt 是缓存模块使用的结构体,主要是用来缓存网络数据,并等待处理。 d i l l o h t m l s t a t e 是在解析模块使用的,用来维护h t m l 状态的数据。d i l l o h t m l 是也 是在解析模块使用的,但它是用来保存h t m l 上下文的数据结构 是在显示模块使用的,它保存了解析模块解析排版过后的数据,然后借dwpage 助m i n i g u i 的a p i 将其中的数据在显示设备上显示出来。 t a g i n p u t 数据结构是在m i n i g u i 的底层抽象层使用的,主要保存输入引擎的相关 函数指针,比如键盘和鼠标更新函数,事件等待函数等待。 2 4 浏览器数据流程 浏览器通过网络或者是本地获得输入数据,比如h t m l 文本、图片、动画等等, 如果数据来自网络,则将其放入缓存,然后将得到的h t m l 数据交给p a r s e 解析模块 进行数据解析,解析的结果经过排版等过程之后存入堆栈结构体。接下来通过g l i b 库 信号发射机制调用m i n i g u i 的绘图操作,m i n i g u i 封装了所有需要的绘图操作,包括 基本的画点、画线、矩形等基本简单操作和对话框、编辑框、文本框等基本控件,将 1 0 长安大学硕士学位论文 堆栈内容弹出绘制到浏览器的客户区域,也就是m i n i g u i 创建的一个b r o w s e r 自定义 控件里面。一些系统级的消息处理( 如键盘、鼠标或者触摸屏) 由i j i 模块负责处理, 浏览器的整体数据流程如图2 6 所示: 服 叫t e x t 卜 p a r s e囤 呻几丽 _ 2 5 浏览器技术指标 图2 6 数据流程图 本文设计的嵌入式浏览器是用于嵌入式设备的,比如数字电视机顶盒、智能手机、 工业控制网络监控,它基于l i n u x 、u c l i n u x 、u c o s i i 、v x w o r k s 等十几种嵌入式操作系 统,主要目的是通过嵌入式设备来完成用户浏览网页以及相关的一些操作功能。预先指 定m g d i l l o 嵌入式浏览器的技术指标有: l 、对各种网页规范和标准的兼容性,要求m g d i l l o 提供对h t m l 4 0 、c o o k i e 、s s l 认证、j a v a s c r i p t l 5 等相关功能的支持。 2 、体积小,占用资源少,要求m g d i l l o 是一个体积非常小的浏览器。最终生成的 可执行程序的数据量根据功能不同在3 0 0 8 0 0 k 之间。同时,m g d i l l o 资源消耗也非常少, 只需要6 0 m i p s 的处理器,2 m 存储器就可以运行。 3 、多种图片格式的支持,支持网页常用的多种图片格式,如p n g 、j p e g 、b m p 、 g 动画等。 4 、中英文字体的完美支持,网页显示速度快,由于m g d i l l o 基于m i n i g u i 库开发 的,所以需要充分利用m i n i g u i 对中文的良好支持特性,运行速度快。 5 、跨操作系统,m g d i l l o 继承m i n i g u i 跨操作系统的特性,使其具有良好的可移 植性,可以将其移植到l i n u x u c l i n u x 、v x w o r k s 等十多种操作系统上。 6 、浏览器界面的可定制性,要求m g d i l l o 为用户提供相关的界面接口函数,通过 对这些接口函数的实现,用户可以根据需要定制浏览器界面。 以上只是目前暂时的设计目标,其它的扩展功能可以根据需要在产品经过测试以后 第_ 二章嵌入式浏览器的总体设计 继续往里面增加。 2 6 小结 这一章从通用浏览器结构入手,首先构建了嵌入式浏览器的体系结构,然后研究了 m g d i u o 的功能模块、主要数据结构和数据流程,提出了嵌入式浏览器的技术指标。从 嵌入式浏览器上的总体构架上可以看到,h t m l 解析模块、网络传输模块和u i 模块在 浏览器中处于重要地位,其他很多模块都要调用他们提供的接口,鉴于这三个模块在本 浏览器中的重要地位及其重要意义,在余下的章节中对h t m l 解析模块、网络传输模 块和u i 模块及实现作了详细的研究。 1 2 长安人学硕士学位论文 第三章解析模块的实现 在本章和下两章中,分别介绍了m g d i l l o 中三个关键模块h t m l 词法解析器的设 计、网络传输模块的设计和u i 模块的设计。 3 1h t m l 词法解析器的设计 h t m l 词法分析是浏览器设计的基础环节,也是整个设计过程中重要的前端工作, 其数据结构的拟订与接下来的语法分析和布局算法密切相关,词法分析的效率与准确 性、容错性也关系到整个浏览器设计的质量。在某些浏览器中,词法分析是一个独立的 模块,它接收缓存区内的h t m l 数据,把它解析成特定的数据结构。但也有这样的浏 览器,它的词法分析是与布局结合在一起,即一边进行词法分析,一边布局,不设立相 应的数据结构来存储词法分析器分析出来的结果【5 】。本文就是采用第二种方法进行词法 分析的。词法分析的两种模式特性如图3 1 所示: 图3 1 词法分析模式图 h t m l 词法分析器的特点是不以发现和纠正h t m l 语法错误为目的,而是要忽略 遇到的语法错误,最大程度地解析文档中所包含的合法有效的成分。不同的浏览器对于 标准的h t m l 元素和属性都有不同程度的扩展,例如i n t e m e te x p l o r e r 可以使用 m a r q u e e 元素,n e t s c a p en a v i g a t o r 可以使用b l i n k 元素。另一方面,有些网页创作 工具,例如f r o n t p a g e 在实现某些与特定w e b 服务器相关的功能时,会在h t m l 文档中 加入相应的扩展脚本,如何分析和处理这类内容也是设计h t m l 语法解析器应考虑的 问题之一。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省耒阳市2025届初三下学期第二次月考试题数学试题试卷含解析
- 辽宁省沈阳市一三四中学2025届初三下学期周练试卷(四)生物试题含解析
- 山西省大同市左云县东北小学校2024-2025学年数学四下期末学业水平测试试题含解析
- 吉林城市职业技术学院《Spss统计软件》2023-2024学年第二学期期末试卷
- 山东政法学院《犯罪心理学专题》2023-2024学年第一学期期末试卷
- 皖北卫生职业学院《机械制图Ⅰ》2023-2024学年第二学期期末试卷
- 上海市复旦附中2025届高三补习班下学期第四次月考数学试题含解析
- 钦州幼儿师范高等专科学校《民族戏曲与说唱艺术》2023-2024学年第一学期期末试卷
- 山东省2025届数学三下期末考试试题含解析
- 四川省棠湖中学2024-2025学年高三语文试题高考冲刺七含解析
- 2025四川成都陆港枢纽投资发展集团限公司招聘人事专员1人自考难、易点模拟试卷(共500题附带答案详解)
- 湖北省部分普通高中联盟2023-2024学年高一下学期数学期中考试试卷(含答案)
- 养老院新员工安全培训
- 2025年四川雅安市名山区茗城有限公司招聘笔试参考题库含答案解析
- 2022年湖南省岳阳市华容县小升初语文试卷
- 【北京】《总也倒不了的老屋》名师课件(第二课时)
- 《肺的结构和功能》课件
- 事业单位考试综合基础知识真题及解析
- 贷款免息申请书
- 光伏安装劳务分包合同
- 长期护理保障失能等级评估规范
评论
0/150
提交评论