(通信与信息系统专业论文)基于minigui的嵌入式web浏览器的研究与开发.pdf_第1页
(通信与信息系统专业论文)基于minigui的嵌入式web浏览器的研究与开发.pdf_第2页
(通信与信息系统专业论文)基于minigui的嵌入式web浏览器的研究与开发.pdf_第3页
(通信与信息系统专业论文)基于minigui的嵌入式web浏览器的研究与开发.pdf_第4页
(通信与信息系统专业论文)基于minigui的嵌入式web浏览器的研究与开发.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学硕士学位论文 摘要 在嵌入式系统上开发w e b 浏览器正逐渐成为一个技术热点,只要是可以接入网络 的设备几乎都可以用到w e b 浏览器,但由于浏览器涉及到一个广泛的技术集合,开发 浏览器是一项非常巨大的工程,具有一定的商业风险,所以目前市面上的嵌入式浏览 器绝大部分都是国外厂商的,真j 下国内拥有完全自主产权的嵌入式浏览器很少。 本文首先对嵌入式浏览器的技术、市场现状及其发展前景做了一个简要的介绍和 分析,然后阐述了浏览器设计的基本原理以及m o n q u e r o r 嵌入式浏览器的整体构架, 并以k o n q u e r o r _ e m b e d d e d 为研究和开发的原型,开发出一款基于m i n i g u l 的符合 h t m l a o 和w 3 c 标准的嵌入式浏览器。接下来重点讨论了浏览器中的一些关键模块, d o m 模块详细介绍了d o m 标准,并采用设计模式的观点对整块代码存结构。l :做了详 细说明,网络模块主要介绍了g h t t p 库的使用以及c o o k i e 韵安现,解析模块则在语法 和词法分析的算法上做了详细说明,最后是对浏览器中的一些关键技术的介绍, j a v a s c r i p t 部分主要介绍了如何利用j a v a s c r i p t 引擎s p i d e r m o n k e y 在浏览器中支持 j a v a s c f i p t ,h a s h 部分则简要介绍了根据本课题的实际情况对f l a s h 支持的折衷方案。 这篇论文对浏览器的基本原理和总体结构做了简要介绍,重点介绍了其中的一些关键 模块和关键技术的实现,对我国开发自主产权的嵌入式浏览器具有很大的意义。 关键字:嵌入式浏览器,设计模式,m i n i g u i ,h t m l ,d o m ,c o o k i e ,j a v a s c r i p t f l a s h 华中科技大学硕士学位论文 a b s t r a c t d e v e l o p i n gw e bb r o w s e ro ne m b e ds y s t e mi sb e c o m i n gah o tp o i n t t h eb r o w s e r a l m o s te x i s t so na l lt h ee q u i p m e n t st h a tc a na c c e s si n t e r n e t b u tb r o w s e rr e f e r st oam a s so f t e c h n i q u e s ,p r o t o c o l sa n dc o n c e p t s i ti ss ob i gap r o j e c tt od e v e l o pb r o w s e rt h a tt h e r ea r e c o m m e r c i a ld a n g e r s s o ,e m b e d d e dw e bb r o w s e r so nt h em a r k e ta r ea l m o s td e v e l o p e db y f o r e i g nc o m p a n i e sa n d t h eb r o w s e r sw eh a v eo w nk n o w l e d g ep r o p e r t ya r es of e w t h i sa f t i c l ei n t r o d u c e sa n da n a l y z e st h et e c h n i q u e s ,c u r r e n tm a r k e ts i t u a t i o na n d d e v e l o p m e n tf o r e g r o u n do fe m b e d d e db r o w s e r i nb r i e fa tf i r s t t h e ni t e x p l a i n st h e f u n d a m e n t a lo fw e bb r o w s e rd e s i g na n dt h ea r c h i t e c t u r eo fm o n q u e r o re m b e d d e dw e b b r o w s e ra n dw et a k ek o n q u e r o r - e m b e d d e da st h es t u d y i n ga n dd e v e l o p i n gp r o t o t y p et o d e v e l o pae m b e d d e dw e bb r o w s e rb a s e do nm i n i g u lw h i c ha c c o r d sw i t hh t m 4 0a n d w 3 c s p e c i f i c a t i o n a f t e rt h a t ,i tf o c u s e so ns o m ek e ym o d u l e s :d o mm o d u l ei n t r o d u c e s t h ed o m s p e c i f i c a t i o ni nd e t a i la n da n a l y z e st h ea r c h i t e c t u r eo ft h es o u r c ec o d ei nd e s i g n p a t t e r no p i n i o n ;n e t w o r km o d u l ei n t r o d u c et h ei m p l e m e n t a t i o no fc o o k i ea n dh o wt ou s e “g l l t t p ”l i b r a r y ;p a r s e rm o d u l ed e s c d b e sp a r s i n ga r i t h m e t i ci nd e t a i l a tl a s t ,i ti n t r o d u c e s s o m e k e y t e c h n i q u e s :j a v a s c r i p tp a r t i n t r o d u c e sh o wt ou s e j a v a s c r i p t e n g i n e - s p i d e r m o n k e yt os u p p o r tj a v a s c r i p ti nw e bb r o w s e r ;f l a s hp a r ti n t r o d u c e st h e t r a d e o f fw a ya c c o r d i n gt ot h er e a ls i t u a t i o n t h i sa r t i c l ei n t r o d u c e st h ef u n d a m e n t a la n d a r c h i t e c t u r eo fw e bb r o w s e ri nb r i e fa n df o c u s e so nt h ei m p l e m e n t a t i o no fk e ym o d u l e sa n d t e c h n i q u e s i ti ss i g n i f i c a n tf o ra st od e v e l o po w nk n o w l e d g ep r o p e r t yr i g h te m b e d d e dw e b b r o w s e r k e yw o r d s :e m b e d d e db r o w s e r ,d e s i g np a t t e r n ,m i n i g u l ,h t m l , d o m ,c o o k i e , j a v a s c r i p t ,f l a s h 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:复,1 刖 同期:咄,月甲同 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口, 在年解密后适用本授权书。 本论文属于 不保密吖 ( 请在以上方框内打“”) 学位论文作者签名:蟊l 吲 日期:2 ”仁年f 月审同 指导教师签名:7 ;j ;g 尹沁 同期咖中年f 月夕r 华中科技大学硕士学位论文 1 1 引言 1 绪论 在当今的信息社会,网络无处不在。嵌入式系统发展到一定的阶段后,网络成为 系统中的重要组成部分,并且需求越来越大。针对嵌入式系统的浏览器也应运而生。 浏览器功能强大、界面友好、操作简单,普通用户通过它,对网络资源进行透明访问, 在浩瀚如海的网络世界中漫游。目前,在嵌入式系统中拥有一个w e b 浏览器逐渐成为 一种时尚并将会得到普及,如现在高端手机和p d a 上已经有了w e b 浏览器。但浏览 器涉及到包括h t m l ,h ”p ,c s s ,s s l ,x m l ,c o o k i e j a v a s c r i p t ,d o m 等大量 标准和协议在内的一个广泛的技术集合,如果组织团队从头开始丌发,不仅具有很大 的风险,而且与国外已经成熟的嵌入式w e b 浏览器相比也不具备竞争力。l i n u x 的丌 放源码为我们提供了一条捷径,在l i n u x 世界里,黑客们为我们编写了大量的嵌入式 浏览器,其中最著名的当属基于q t 的k o n q u e r o 卜e m b e d d e d ,它不仅实现了上述提到的 标准和协议,而且其在速度、显示和易用性方面的表现与其它嵌入式浏览器相比也显 得非常的优秀。本文以k o n q u e r o r - e m b c d d e d 为参考原型,歼发基于m i n i o u l 上的嵌入 式浏览器,并重点讨论了其中关键模块的实现,对浏览器中的一些关键技术也做了详 细的描述,相信这些工作对开发我国自主产权的浏览器具有重要的参考价值。 1 2 嵌入式浏览器概述 1 2 1 嵌入式系统概述 1 2 1 1 嵌入式系统的历史及现状 世界上第一台计算机问世后的几十年时间罩,计算机技术得到了迅猛发展,真可 谓是日新月异。伴随着计算机技术的进步,它被用到了越来越多的行业中,起到了越 来越大的作用。为了适应些行业对产品体积、成本因素的要求,计算机的控制部分 被安置在了设备内部,占着非常小的空间,给处理器提供非常有限的内存。这样的系 统就是嵌入式系统。 华中科技大学硕士学位论文 嵌入式系统在2 0 世纪6 0 年代后期,先在通信领域中出现。七、八十年代后,主 要被用在工业领域。目前,在信息家电、移动通讯、手持设备中、以及工业控制领域 中都得到了广泛应用。嵌入式系统带来的工业产值已经超过了1 万亿美元。1 9 9 7 年 美国嵌入式系统大会( e m b e d d e ds y s t e mc o n f e r e n c e ) 的报告指出:未来5 年,仅基于 嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1 5 0 0 亿美元的新市 场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的计算能力已超过了 i b m ”1 1 1 。 1 2 1 2 嵌入式系统的概念 所谓嵌入式系统( e m b e d d e ds y s t e m ) 就是:以应用为中心,以计算机技术为基础, 软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用 计算机系统。 它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序等四 个部分组成。可以实现对其他设备的控制、监视或管理等功能。嵌入式系统非常的多 样化,不同的系统差别是非常大的。 嵌入式系统同普通计算机系统相比,主要具有以下几个特点: 1 、从整个行业来看 嵌入式系统涉及的领域非常广,需求相差很大,不可能由少数的公司、少数产品 垄断全部市场,很利于各种小规模高技术公司发展、创新。而通常的计算机行业被认 为是由w i n t e l ( m i c r o s o f t 和i n t e l9 0 年代初建立的联盟) 垄断的。 2 、系统应用范围 嵌入式系统是面向具体的应用的。根据不同应用的不同需求,对软件、硬件进行 仔细挑选、定制,去掉冗余,以获得更高的性能。而普通的计算机系统的通用性比较 高。除了用户软件需要自己开发以外,其他的底层软件、硬件都可以得到很好的支持。 3 、系统本身 嵌入式系统中,c p u 集成度很高,把许多普通计算机中由板卡完成的任务集成到 芯片内部,减小功耗、体积,提高工作效率。为了提高运行速度和系统的可靠性,软 件一般固化到芯片上,并尽量减少编译后二进制代码的跃度。丽普通计算机软件是临 2 华中科技大学硕士学位论文 时存放在磁盘上的,由于对软件运行空问限制不严格,二进制代码的长度会稍长一些。 1 2 2 浏览器概述 其实,浏览器也是一种应用软件。用户用它,可以在w w w ( w o r dw i d ew e b ) 上搜寻、查看各种信息。所有这些信息都是以网页的形式存在的。“b r o w s e r ”这个词 比“w e b ”要早出现,它原本只是用户界面中的一个普通术语。当时,用户界面是用 来在线浏览文本文件的。第。个图形用户界面的w e bb r o w s e r 出现后,这个术语也被 用到w e b 上。 从技术上讲,w e bb r o w s e r 是一个客户端( c l i e n t ) 程序。它用h t t p ( h y p e r t e x t t r a n s f e rp r o t o c 0 1 ) 协议,通过i n t e r n e t 向w e bs e r v e r s 发送浏览器用户的请求。1 9 9 2 年,m o s a i c 出现,它是第一个图形用户界面的浏览器。m o s a i c 是早期浏览器的一个商 业版本。后来,n e t s c a p en a v i g a t o r 采用了许多它的用户界面的特性。n e t s c a p en a v i g a t o r 是第一个得到广泛使用的浏览器。随后,m i c r o s o f t 推出了他们自己的浏览器m i c r o s o f t i n t e r n e te x p l o r e r 。n e t s c a p en a v i g a t o r 和m i c r o s o f ti n t e r n e te x p l o r e r 相互竞争,成为了 两个最流行的浏览器。绝大多数的i n t e r n e t 用户只意识到它们两个的存在,而忽略了 许多其它的测览器。像一些在线服务( 如:a m e r i c a no n l i n e ,c o m p u s e r v e ,p r o d y g ) , 它们原来也有自己的浏览器。现在,它们都提供n e t s c a p c 和m i c r o s o f t 的浏览器。l y n x 是一种纯文本浏览器,只在u n i xs h e l l 和v m s 用户中使用。o p e r a 则是另一个后来 提供的浏览器。 n e t s c a p en a v i g a t o r 和m i c r o s o f ti n t e r n e te x p l o r e 都是图形浏览器。图形浏览器既可 以浏览图形,又可以浏览文本。大部分的现代浏览器还能提供多媒体信息,包括声音、 图像。不过,声音和图像中的一些格式需要对应的p l u g - i n 。 1 2 3 嵌入式浏览器的特点 嵌入式浏览器从功能上、技术上来说, 区别。但由于它处于嵌入式的特殊环境中, 1 、从整体看,嵌入式浏览器具有多样性 和桌面系统中使用的浏览器没有什么人的 拥有了些自身的独特之处。 嵌入式系统是针对各种具体设备设计的,设备的多样性决定了系统的多样性,也 3 华中科技大学硕士学位论文 就决定了嵌入式浏览器的多样性。根据具体应用的需求,对嵌入式浏览器进行定制是 必须的,在编制代码时,要充分考虑到这一点,使之能方便的进行修改、裁剪。 桌面市场里,w i n d o w s 和i e 统一天下。嵌入式浏览器市场不会出现这种局面。产 品都是针对特定设备开发,不具有全部功能,不能通用。 2 、从系统看,嵌入式浏览器的地位举足轻重 桌面计算机环境中,操作系统处于硬件和应用程序之间。对下,操作系统管理硬 件设备;对上,操作系统为应用程序提供必要的接口。所以,操作系统是整个计算机 系统最核心的部分。浏览器只是操作系统支持的众多应用程序中一个。软件商可以把 操作系统和浏览器进行捆绑销售。 嵌入式系统中,情况完全不同。嵌入式操作系统和嵌入式浏览器关系是非常密切 的,甚至是不可分割的。嵌入式浏览器是嵌入式操作系统最熏要的应用软件,甚至可 能成为唯一的直接支持的应用软件。其他的应用都可以通过p l u g i n 接口、或者直接用 h t m l 、j a v a s c r i p t 及其扩展语言来实现1 2 1 。 在实现互连网的嵌入式系统中,嵌入式操作系统的核心地位和图形用户界面的开 发接口作用在逐渐淡化。嵌入式操作系统成为了浏览器和硬件系统之间的驱动和底层 管理软件。而嵌入式浏览器将成为系统核心,向上层应用软件提供p l u g i n 接口,支持 各种应用。不过,因为嵌入式系统多样化,嵌入式浏览器不能和嵌入式操作系统起 捆绑出售。 3 、从硬件看,嵌入式浏览器要求特殊 任何软件的实现,都离不开硬件系统的有力支持。嵌入式系统对硬件有一些特殊 要求。 为节省硬件成本,保证比较低廉的价格。要注意性能价格比。选择核心处理j 巷片、 r a m 、f l a s h 存储器等硬件时,能省就省。为满足非p c 上网设备对系统功耗的限制, 要选择省电、低散热量的器件。一般采用较低主频的c p u 。 4 、从软件看,嵌入式浏览器的特殊性 由于嵌入式系统、硬件设备的特殊要求,嵌入式浏览器的代码编制有一些需注意 的地方。 4 华中科技大学硕士学位论文 浏览器最基本功能就是要能够浏览各种网页,嵌入式浏览器也是这样。因此,它 要支持h t m l 标记语言、h t t p 协议、英文显示、或包括中文在内的双字节语言显示。 并且,由于使用者一般都有获取文字、图像、声音、视频等信息的需求,嵌入式浏览 器也要支持这些格式。 1 2 4 嵌入式浏览器的现状及发展前景 近几年,嵌入式市场迅速崛起,许多大大小小的公司都相继投入其中,出现了一 些已经商业化的产品。但没有任何一个产品,能够像m i c r o s o f t 的i n t e r a c te x p l o r e r 和 n e t s c a p e 的n a v i g a t o r 在p c 市场中一样,占垄断地位。在嵌入式的世界里,完美的 h t m l 显示不是必须的。好的技术应该是能够象显示老的文本格式一样,简洁的显示 现在的网页。如在蜂窝电话或者i n t e m e t 设备中,用户需要迅速访问股票报价、体育 比赛结果、全球定位数据等等。嵌入式浏览器要能够灵活的根据具体应用进行定制。 商家根据各自不同的侧重点,发展着自己的产品。 多样的需求为众多商家的发展提供了机会。他们投身到嵌入式市场中,促进了技 术的进步、市场的发展。根据美国i n t e r n a t i o n a ld a t ac o r p o r a t i o n 研究表明,和1 9 9 7 年 的4 相比,2 0 0 1 年在美国,i n t e m e t 设备将会占整个信息访问设备领域的4 2 。可见, 嵌入式系统的发展速度之快。 嵌入式浏览器的技术仍然在向前发展,除了继续跟随h t m l 、帅、s s l 、 j a v a s c r i p t 等协议或语言的新版本,继续升级以及支持更多的应用外,还在继续拓展其 他的应用模式和领域。如测览器技术和数字电视机顶盒技术集成,实现完整的数字电 视软件平台【3 l 。浏览器技术和j a v a 技术的结合,解决实时性强的动态视频处理。把浏 览器技术应用到更多传统的电器领域,以提供交互式的应用等等。这些都是很好的发 展方向,有着更好的发展前景。 1 3 课题来源 本论文基于一个联合课题的研究内容,该课题来源于长江通信股份有限公司和华 中科技大学的一个合作,从事无线多媒体终端的研究与开发工作。这个课题在嵌入式 华中科技大学硕士学位论文 系统的研究与发展的项目中具有代表性。本文的内容是这个课题中的一个予课题,基 于m i n i g u i 的嵌入式浏览器的研究与开发。 1 4 研究目标和研究内容 本文的研究目标是研究嵌入式浏览器的结构和关键技术,并在无线多媒体终端上 设计并实现基于m i n i g u i 的嵌入式浏览器,以满足用户浏览w e b 网页的需求。 本文讨论的几个方面是: ( 1 ) d o m 标准及实现。 ( 2 ) h t m l 语法相关概念的简要介绍以及词法语法解析的实现。 ( 3 ) 介绍g t i t l p 库的使用,并重点介绍了c o o k i e 的实现。 ( 4 ) 重点研究了j a v a s c r i p t 引擎的使用方法,描述了如何在浏览器中实现对 j a v a s c r i p t 的支持。 ( 5 ) 简要介绍了如何在浏览器中实现对f l a s h 的支持。 1 5 课题的意义 随着第一款具有自主知识产权的“中国芯”的诞生,从芯片设计制造、硬件设备 制造到操作系统开发、系统集成开发一条龙的产业链在中国大地上逐渐形成,生产拥 有完全自主知识产权的嵌入式系统成为可能并逐渐在中国形成一个热门,而作为嵌入 式系统中最重要的应用软件之一的嵌入式浏览器也逐渐受到重视并形成了一个新的研 究热点,研发嵌入式浏览器的公司在最近的一年里也纷纷涌现。然而,嵌入式浏览器 的开发涉及到一个广泛的技术标准集合,并且其中一些标准还在不断的发展变化,这 就意味着浏览器的实现不仅非常复杂,而且其构架还必须具有较好的可扩展性,再加 上国外的公司在这方面起步早,而且已经研发出成熟的产品,因而国内公司投入大量 人力去研发嵌入式浏览器常常具有较大的风险,目前拥有完全自主产权并进入实用阶 段浏览器的国内公司少之又少,绝大部分还只处于宣传阶段。 本文研究和实现的基于m i n i g u l 的嵌入式浏览器m o n q u e r o r 是以 k o n q u c r o r _ e m b e d d e d 为参考原型而_ 丌发的。k o n q u e r 0 卜e m b c d d c d 是l i n u x 下著名的嵌 6 华中科技大学硕士学位论文 入式浏览器,它几乎支持所有的与浏览器相关的标准和协议,当然与其丰富功能相对 应的是其庞大的代码量,在实现m o n q u e r o r 的过程中,我们大量借用了 k o n q u e m f - e m b e d d e d 的代码及其设计构架,并对其d q m 的实现部分做了较为详细的 研究,对词法语法解析模块也做了较为详细的介绍,除此之外,还详细介绍了著名的 j a v a s c r i p t 引擎s p i d e r m o n k e y 的使用方法,以及如何利用该引擎在浏览器中实现对 j a v a s c d p t 的支持,由于网络部分是较为独立部分,我们利用g i l l l p 库完全改写了网络 部分并在其中加入对c o o k i e 的支持,这些工作对开发和推广嵌入式浏览器具有重大意 义。 1 6 本文的组织结构 本文通过对l i n u x 下著名的嵌入式浏览器k o n q u e r o r - e m b e d d e d 的研究,重点讨论 了浏览器中一些关键模块和关键技术的实现,其主要内容如下: 第二章主要介绍了浏览器设计的基本原理及m o n q u e r o r 嵌入式浏览器的总体设计, 重点介绍了m o n q u e r o r 嵌入式浏览器中的整体架构及其代码实现的类结构。 第三章重点讨论了w 3 c 所制定的d o m 标准,并以设计模式的观点对标准的代码 实现在结构上做了较为清晰的分析,对大型软件设计具有启发意义。 第四章是解析模块,首先介绍了h t m l 语法相关的概念。然后介绍了实现词法语 法分析的代码,最后通过一个简单的例子阐明了实现词法语法分析的算法。 第五章是网络模块,首先介绍了g l l t t p 库的使用方法,然后重点介绍了c o o k i e 的协 议过程以及如何实现对c o o k i e 的支持。 第六章介绍了如何在浏览器中实现对j a v a s c r i p t 的支持。这一部分首先简要介绍了 j a v a s c r i p t 引擎s p i d e r m o n k e y 的使用方法,采用从一般到特殊的讲解方法,先介绍 j a v a s e r i p t 实现的一般原理,然后介绍如何在浏览器中实现对j a v a s c r i p t 的支持。 第七章介绍了在嵌入式这种特殊环境中如何对f l a s h 进行支持。 7 华中科技大学硕士学位论文 2 1 浏览器设计的基本原理 2 浏览器的设计 浏览器软件安装在客户端,是用户使用网上资源的强有力手段。简单来讲,浏览 器是使用h r r p ( h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 1 4 , s l 协议,通过网络,从服务器上得到 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 ) 【6 l 资源,对其进行解释、分析,并最后将其最示 在屏幕上的软件。 现在浏览器已经发展的很成熟了。n e t s c a p en a v i g a t o r 和m i c r o s o f ti n t e r n e te x p l o r e r 己经成了h t m l 浏览器的事实上的标准。浏览器支持的功能也越来越强,不断的支持 新的功能、支持动态的网页、支持多媒体等等信息。不过,它仍然有着很大的发展空 间,仍需要继续向前发展。 但不管浏览器如何发展,从功能上讲一个浏览器必须至少包含网络模块,解析模 块,显示模块,u i 模块,如果浏览器符合w 3 c 所制定的标准,那么浏览器还必须包 含d o m 模块。图2 - 1 显示了各模块划分以及它们之间的相互依赖关系。 图2 1 模块划分及其之问的相互依赖关系 图中各模块的依赖关系描述如下: 网络模块:网络模块可以看作是一个相对较为独立的模块,其主要作用就是采用 h r r p 协议下载h t m l 网页,该模块在两种情况下可能会被触发运行,一是来自u i 模块的消息,当用户用鼠标点击一个新的链接或在地址栏输入新的网址,则u 1 模块 将会调用网络模块;二是来自解析模块,当解析模块解析得到如“i m a g e ”等标记时, 也可能调用网络模块从指定的地址取得数据。 一 斗 一t 哆 警 熙 一繁 华中科技大学硕士学位论文 解析模块:解析模块是一个与d o m 模块联系很紧密的模块,当解析模块解析到 一个h t m l 元素后会利用d o m 模块提供的接口将该元素插入到d o m 树中,当网络 模块下载完毕页h t m l 网页后,解析模块将被调用。 d o m 模块:d o m 模块负责创建、销毁、管理d o m 树,通过解析模块得到h t m l 元素,然后利用该元素创建d o m 树,显示模块利用该d o m 树可以创建相应的r e n d e r 树,u l 模块可以利用d o m 模块提供的方法对d o m 树进行操作。 显示模块:负责依据d o m 树来创建r e n d e r 树,显示h t m l 元素,用户也有可能 通过u i 模块来影响显示模块( 譬如通过鼠标点击改变字体和颜色) 。 u i 模块:u i 模块是指浏览器的框架外观,处理u i 事件如键盘、鼠标事件以及一 些与设备无关的u j 事件如焦点的变化。u i 模块其实与系统的关系更密切( 操作系统 或图形系统) ,每一套系统都会提供一套良好的图形界而和消息传递机制,如m i n i o u l 的消息机制就类似与w i n d o w s 的消息机制用,而q t 则采用了s i g n a l s l o t ( 信号插槽) 机制【8 , 9 1 ,利用这套机制,应用程序可以很好的接收和处理来自用户的消息。可以这样 说,当整个浏览器运行起来后,u i 模块是消息流动的源头【1 0 】。通过u l 模块来触发各 种消息的流动。 2 2m o n q u e r o r 嵌入式浏览器总体设计 2 2 1m o n q u e r o r 嵌入式浏览器简介 m o n q u e r o r 嵌入式浏览器是基于m i n i g u i 上的浏览器,是无线多媒体终端这个课 题的一个子课题,主要是希望在没有p c 的场合可以让用户浏览w e b 网页,所以对 m o n q u e r o r 嵌入式浏览器的要求是可以浏览绝大部分的w e b 网页。m o n q u e r o r 是以 k o n q u e r o r - e m b e d d e d 为参考原型开发的,基本保存了k o n q u e r o r e m b e d d e d 的设计构架 和设计思想,也继承了其绝大部分的功能,m o n q u e r o r 嵌入式浏览器所实现的技术指 标有:1 、支持h t m l 4 + 0 ,2 、支持c s s 2 ,3 、支持j a v a s c r i p t n i ,4 、支持f l a s h ,5 、 支持h t t p l 1 ,6 、支持c o o k i e i 控l ,7 、实现了d o ml e v e l1 ,部分实现了d o ml e v e l2 。 由于上述指标的实现,所以我们的m o n q u e r o r 嵌入式浏览器拥有较为丰富的功能。 因为支持h t m l 4 0 所以可以较好的解析h t m l 网页;因为支持c s s 2 ,所以在页丽显 9 华中科技大学硕士学位论文 示时能有较好的布局显示;因为支持c o o k i e ,所以m o n q u e r o r 嵌入式浏览器可以访问 需要c o o k i e 的网站;因为支持f l a s h ,所以可以看到网页中嵌入的f l a s h 动画;因为支 持h t t p l 1 ,所以有较好的网络功能;因为支持j a v a s c r j p t 所以可以显示动态网页,支 持表单提交;因为支持d o m 标准,所以浏览器具有较好的扩展性,并可以较好的处 理鼠标键盘事件;因为m i n i g u i 可以较好的支持中文,并且也支持b m p 、j p g 格式的 图片,所以m o n q o e r o r 嵌入式浏览器也可以较好的显示简体中文和图片。 2 2 2 总体构架 从m o n q u e r o r 嵌入式浏览器的需要达到的技术指标来看,m o n q u e r o r 嵌入式浏览器 至少涉及到了h t m i a 0 ,c s s 2 ,c o o k i e ,f l a s h ,h 1 f r p l 1 ,j a v a s c r i p t ,d o m 这些标 准和技术,所以整个浏览器必定涉及到众多功能模块,图2 2 是对m o n q u e r o r 嵌入式 浏览器的一个总体构架的说明。 图2 2 浏览器整体构架 m o n q u e r o r 嵌入式浏览器主要包括九个主要模块:u i ( 用户界而) 、i o ( 输入输f f l 模块,对h t t p 传输模式封装,形成统一的接口) 、h t m l p a r s e r ( h t m l 页而解析器, 形成d o m 对象树) 、c s sp a r s e r ( c s s 表单分析器) 、i m a g e ( 图像库,对j p g 、g i f 、 p n g 等格式的图像处理进行封装,形成统一接口) 、j a v a s c r i p t 解释器( 用于生成 j a v a s c r i p t 对象,运行j a v a s c r i p t 脚本) 、g u i ( 底层图形席,用于生成用户界面、表现 页面及生成j a v a s c f i p t 对象的前端) 、r e n d e r ( 用于显示h t m l 元素) 、d o m ( 实现d o m 1 0 r 眦 一 竺i i咧 rll+ 华中科技大学硕士学位论文 标准) 。 这9 个模块之间的相互作用关系是:u i 模块接收到一个u r l 请求,u i 模块将会 调用l o 模块,i o 模块完成传输后,将会调用h t m lp a r s e r 模块进行解析,如果解析 模块遇到c s s 表单,则会调用c s sp a r s e r 模块,如果遇到u r l 请求则会调用l o 模块, 如果遇到j a v a s c r i p t ,则会调用j a v a s e r i p t 引擎来执行j a v a s c r i p t ,同时会调用d o m 模 块提供的接口建立d o m 树,d o m 树建立完毕后,r e n d e r 模块会根据d o m 树来显示, r e n d e r 模块会调用i m a g e 模块和g u i 模块来显示图文并茂的w e b 网页。u i 模块也可能 接收到一个鼠标点击事件来执行一段j a v a s c r l p t 代码,j a v a s c r i p t 代码可以通过调用 d o m 模块提供的接口修改d o m 树,从而改变显示的网页,也可以通过访问控件来调 整浏览器框架的显示。 2 2 3 类结构设计 浏览器的整体构架大致的介绍了浏览器所涉及到的功能模块及这些模块在系统中 所处的位置。但作为一个以c + + 为编程语言、以面向对象设计思想1 1 3 】来设计的软件而 言,从其需求抽象出其功能模块和构架仅仅是总体设计的工作之一,类结构的设计也 是其中的重要工作,类的设计是代码编写的第一步。图2 3 则说明了如何在代码上组 织协调这些功能模块。 华中科技大学硕士学位论文 譬叁塑ji 一写扛 幽辫匣蓠h t m k t o k e n i z e r ri 孙幽1 嚣翟j f 务jl 媾轧 这一部分首先介绍了m o n q u e r o r 嵌入式浏览器所应达到的技术指标,然后从这些 华中科技大学硕士学位论文 技术指标抽象出了m o n q u e r o r 嵌入式浏览器的功能模块及其整体结构,接着进一步的 描述了其类结构,介绍了如何从代码上组织这些功能模块。从嵌入式浏览器上的总体 构架上可以看到,d o m 模块在浏览器中处于一个核心地位,其他很多模块都要调用 d o m 模块提供的接口,而且d o m 标准不仅仅只是针对浏览器,它对所有的以x m l 语言描述的数据都有效,因而随着x m l 的推广及发展,d o m 会变的更有意义,鉴于 d o m 在浏览器中的重要地位及其重要意义,所以在余下的章节中将对d o m 标准及实 现作了大篇幅的描述。h t m l 的解析模块作为浏览器设计中的基本模块,也作了较为 详细的描述,而c o o k i e ;j a v a s c r i p t ,f l a s h 模块作为本课题重要的工作内容也分别作 了详细的介绍,这些工作对了解c o o k i e 、j a v a s c r i p t 的实现机制,如何实现对多媒体 的支持具有较强的实践指导意义。 华中科技大学硕士学位论文 3 1 概要 3d o m 标准介绍及实现 d o m 标准是w 3 c 组织制定的一套关于访问结构化文档的接口标准。在一个支持 d o m 标准的浏览器中,d o m 模块处于一个核心地位。当浏览器得到网页解析网页时, 首先必须利用解析得到的h t m l 元素来构建d o m 树,j a v a s c r i p t 引擎和r e n d e r 模块 可以直接调用d o m 模块提供的接口来查询和修改d o m 树,d o m 树的变化将直接影 响到网页内容的显示。这一部分将详细介绍分析d o m 标准,在对d o m 标准有了一 个清晰的理解后,接着介绍了d o m 标准的代码实现,在这个过程中,我们将会看到 如何通过设计模式这种软件设计方法来实现如此庞大繁杂的标准,对于大型的软件开 发具有启发意义。 3 2 d o m 标准研究 3 2 1d o m 构架与发展 3 2 1 1d o m 构架 d o m 构架根据功能域可以划分为多个模块,目前这些模块所包含的d o m a p i 有 x m l 、h t m l 、c s s 和事件,随着d o m 的发展,还将涵盖显示内容和用户代理的功 能。这些模块分别为d o mc o r e :如何将文档表示为树状结构,即d o m 树,并定义 了访问树节点的方法,在d o mc o r e 模块中定义的d o mr a n g e 模块和d o mt r a v e r s a l 模块就是用来遍历树节点的;d o mx m l :基于d o mc o r e 上的扩展,主要是为了x m l 1 0 的需要:d o mh t m l :定义了一套可以方便访问h t m l 文档的方法;d o me v e n t s : 定义了面向x m l 树操作和用户的事件,如鼠标、键盘和特定的h t m l 事件;d o m c s s : 定义了一套方便易用的用于操作c s s 文档的方法;d o ml o a da n ds a v e :如何将 x m l h t m l 表示为d o m 树,将d o m 树保存为x m t m l 文档:d o mv a l i d a t i o n : 定义了一套修改d o m 树的方法,并且使修改后的d o m 树有效;d o mx p a t h :定义 了一套方便易用的用于查询d o m 树的函数。 1 4 华中科技大学硕士学位论文 3 2 1 2d o m 的发展 d o m 的发展经历了d o ml e v e l0 ,d o ml e v e l1 ,d o ml e v e l2 和d o ml e v e l3 。d o m l e v e l0 主要是指n e t s c a p en a v i g a t o r 3 0 和i e 3 0 中提供的接口,没有对应的w 3 c 文档, 所以真正的d o m 标准应该是从d o ml e v e l1 开始。目前d o ml e v e l1 ,2 都已形成标 准,而d o ml e v e l3 则还在发展之中。下面对d o m 的各个层次做简要介绍。 d o ml e v e l1 :支持x m l1 0 和h t m l 4 0 图3 - id o ml e v e l1a r c h i t e c t u r e d o ml e v e l2 :支持x m l1 0 的命名空问,支持c s s ,事件模型( 用户接口事件和 d o m 树操作事件) 和增强的d o m 树操作方法( 树节点的遍历) 。 x _ i 1 i 0 。i i 一一一一j 卜汕 刚f t l 队8 | 嘲例: - 维承 一依赖 图3 2d o ml e v e l2a r c h i t e c t u r e d o ml e v e l3 :目前尚在发展中,在l e v e l2 的基础上将会增加更多的功能。如在 c o r e 中进一步完善x m l l 0 的命名空间支持,支持x m l b a s e ,进一步扩展用户接口 事件( 如键盘事件) ,l e v e l 3 还将会支持验证( v a l i d a t i o n ) 、载入、存储文档和x p a t h 。 吣嘴 m | | 针i卜删卧i酬讣一 吣,鬻= _ 篓 s s 趴一 华中科技大学硕士学位论文 c o r e ( - i t hn a 峙s d a c e ) + + 曲。j【j u 竖0 】 | , l l 髓唱e】l t r a v e r s a ,lj e 5 i e v e r n t s 。一 i i i 陋岳1 一盎t “。,。i 。i i i 一1 t e x tm o u s e 。i e y b o a re v e n t se ,。 k 。,。d v e n t 3 2 2d o mi _ e v e l1 图3 - 3d o ml e v e l3a r c h i t e c t u r e d o ml e v e l1 可分为两个部分:c o r e 和h t m l 。c o r e 提供了一套底层的可以对任 何结构化文档进行操作的接口和用于操作x m l 文档的扩展接口( 如果没有必要,可 以不实现扩展接口) ,而h t m l 则是在c o r e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论