已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入式浏览器的实现及gui研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 隧餐傣息技术的快遮发展和互联网的广泛应耀,支持嘲络连接斡嵌入式系统 己广泛应用于消费电子和通信领域;机顶盒、手机、p d a 等嵌入式设备嗣益贴 近人们豹强鬻生活,嵌入式淄楚器已残为焚主簧熬应嗣较俘。戮j 毙,嵌入式测蔓 器的相关技术成为当前研究的一个热点。 本文主要分缮了本久在“嵌入式浏笺器的实现及g u i 磷究”课题中所钕的 一黪磺究、实践工掺,党其是在疑影系统移植辩浏览嚣静j a v a s c r i p t 支持部分所 进行的磷究和开发。 本文共分为5 霉。首先,壤逡了嵌入式系绠,嵌入式l i n u x 帮箕上懿测菱嚣 发展概况,指出了基于l i n u x 的嵌入式浏贸器必须具冬的特点并介绍当前几种广 泛馕黉秘嵌入式溪篷嚣。遥过分绥,滔羁零涤鼹的背景。 莓二褰,分缓了测楚嚣开发艨涉及爨熬技术霸标准。 第三窜,首先介绍了o p e n e y e e 嵌入式浏览糕的设计目标和体系结构,然后 具体分凝了凡令主娶模块豹浚程帮主要数援缝稳。 燕鼹露,详缨分缨了o p e n e y e - e 测览嚣中j a v a s c r i p t 黪支持。j a v a s c r i p t 支持 中有个很重要的概念怒语法树,该树表示了h t m l 页黼对象的包含关系。测 焚器能餐正确支持j a v a s c i r p t 语言很大一部分敬捩予语法楗。 第五帮,详细介绍图形系统移植的原理及实现。在该部分中介绍了本人对 o p e n e y e - e 褒入式浏羹嚣黪霆形系统移接鬟爨黪解决方案与实琉。 最聪,筠述了漾题躲发展翦擞。 关键涌嵌入式馥| | 赞器;蚕澎系统:j a v a s c r i p t a b s t r a c t w i t ht h ef a s td e v e l o p m e n to ft h ei n f o r m a t i o n t e c h n o l o g ya n dw i d ea p p l i c a t i o no f i n t e m e t ,e m b e d d e ds y s t e mo fs u p p o r t i n gn e t w o r kh a sb e e n a p p l i e d t oc o n s u m e e l e c t r o n sa n dc o m m u n i c a t i o nf i e l d e x t e n s i v e l y e m b e d d e dd e v i c es u c ha s s e t t o p b o x ,h a n d p h o n e ,p d a ,e t c p r e s sc l o s et od a i l yl i f ed a yb yd a y t h ee m b e d d e db r o w s e r h a sa l r e a d yb e c o m et h em a i n a p p l i c a t i o ns o f t w a r eo nt h o s ed e v i c e s t h u st h er e s e a r c h o i le m b e d d e db r o w s e rb e c o m e sa f o c u so f p r e s e n tr e s e a r c h t h i st h e s i si n t r o d u c e ss o m er e s e a r c hw h a tih a v ed o n ei nt h e p r o j e c to f ” r e a l i z a t i o no fe m b e d d e db r o w s e ra n dr e s e a r c ho ng u i ”,e s p e c i a l l yt h er e s e a r c h0 1 1 j a v a s c f i p ts u p p o r ta n dg r a p h i c ss y s t e mp o r t i n g t h e r ea r ef i v e c h a p t e r si n t h et h e s i s f i r s to fa l l ,i t s h i l l s u pt h ee m b e d d e d s y s t e m ,e m b e d d e dl i n u xa n dt h es t a t u so fe m b e d d e db r o w s e r ,t h e np o i n t so u tc h a r a c t e r o fe m b e d d e db r o w s e rb a s e do nl i n u xa n dr e c o m m e n d ss e v e r a lk i n d so fe m b e d d e d b r o w s e r st h a tu s e d e x t e n s i v e l y a t p r e s e n t t h r o u g h t h e i n t r o d u c t i o n , e x p o u n d t h e b a c k g r o u n d o f t h e s u b j e c t s e c o n d l y ,i n t r o d u c e st h et e c h n o l o g ya n ds t a n d a r di n v o l v e di nt h eb r o w s e r c h a p t e rt h r e e ,i n t r o d u c e st h ed e s i g f io b j e c to fo p e n e y e ee m b e d d e db r o w s e r a n ds y s t e ms t r u c t u r ea tf i r s t ,t h e nm a k eac o n c r e t ea n a l y s i so ff l o wo fs o m em o d u l e s a n dk e yd a t as t r u c t u r e c h a p t e rf o u r ,i td e s c r i b e st h ep r i n c i p l e sa n dr e a l i z a t i o no fj a v a s c r i p t t h e r ei sa v e r yi m p o r t a n tc o n c e p ti nj a v a s c r i p t t o k e n i z e rt r e e ,t h et r e es h o w st h er e l a t i o no f h t m l p a g e so b j e c t s w h e t h e rt h eb r o w s e rc a ns u p p o r tj a v a s c i r p tl a n g u a g ec o r r e c t l y d e p e n d s 0 1 2t h et o k e n i z e rt r e e c h a p t e rf i v e ,i n t r o d u c e st h eg r a p h i c sp o r t i n g t h i sp a r ti n t r o d u c e ss o l u t i o nt o u s i n gb r o w s e r o nk i n d so fg u i s a tl a s t ,s k e t c ht h e p r o s p e c to f t h es u b j e c t k e y w o r d e m b e d d e d b r o w s e r ;g u i ;j a v a s c r i p t 丌 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:壬鱼章! 塾日期:迎兰:! :2 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅:学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:堡垒! 坠 导师签名:逸! ! :盘 日期弦脚6 、) 1 1 嵌入式系统概况 第1 章绪论 在数字信患技术帮薅络技术离速发震瀚今天,嵌入式镘术和入髓生活盼关 系越来髓密切。嵌入式操作系统广泛应用于各灏嵌入式产品( 如机顶盒、p d a 、 移动魄话等) 及实时控制产品( 如工控、数据采集、仿真等) 。在嵌入式产品上 开发豹应翔程序主婺商嵌入式溺滚器、多媒侮应蠲程序、郄簪# 程序、记攀本、字 典、计弹器、时钟、闹铃、游戏铸。 1 1 。1 嵌入式系统蕊壤念 嵌入式系统是一种以应用为中心,以计算机技术为基础,软件可裁减,适应 应用系绞对功能、可纛洼、成本、谤捩、功耗严楱要求款专塌计算极系统。它一 般由嵌入式微处理器、外围硬件设备、嵌入式搡作系统以及用户的应用程序4 个 部分组成,用于实现对其它设备的控制、监视域管理等功能。当前的嵌入式系统 大多楚支持霸络数摅健竣的网终予系统,它攒鸯嘲终耱议模块,便于各羊孛躅终应 用程序在不同平台上实现和移植。 嵌入式处理器主要由一个单片机或微控制器( m c u ) 组成。目前这魑嵌入 式c p u 多是8 蕴蠢l s 位匏,与3 2 位或6 4 位戆毫注戆处瀵嚣稳毙,吴商绞强夔 经济性和现实性。相关支撑硬件包括显示卡、液晶显示器、触摸屏、存储介质 ( r o m 、r a m 和f l a s h 等) 、通信设备、遥控器、i c 卡或信用卡的读取设梧等。 嵌入式蘩统畜瘸子簸兹诗冀辍处理系统。它不是器豫硬盘郑榉大吝量鹣存键奔 质,而大多使用闪存( f l a s h m e m o r y ) 作为存储介质。嵌入式软件包括与硬件相关 的底层软件、操作系统、图形系统、通信协议、数据库系统、标准化浏览器和应 鬟袈箨簿。麸总馋上番,裹天式系绞其有餐纛爰活、蠖裁徐终比裹、嵌入糕强等 特点,可以嵌入到现有任何信息容电和工业控制系统中。从软件角度看,嵌入式 系统具有不可修改性,系统所需酉已照要求较低,系统专业性和实时性较强簿特点。 1 1 2 嵌入式系统软硬件特点 11 21 软件特点 无论嵌入式操作系统还是嵌入式应用程序,同样以一定的应用为核心,以 特定的硬件环境为基础,具有如下特点: 可裁减。由于嵌入式系统的专用性很强,而且存储容量往往有限,所以要 将一些冗余的功能去掉,这就要求系统设计是模块化的,能根据用户的要求有 选择地安装不同的模块。 高实时性。在多任务嵌入式操作系统中,对重要性各不相同的任务进行合 理调度是保证每个任务及时执行的关键,单纯通过提高处理器的速度是无法完 成和没有效率的,这种任务调度只能由优化操作系统软件来完成a 代码的高质量、高可靠性。在系统硬件可靠的基础上,进一步要求系统软 件的可靠和高效,以保证实时性的要求,同时应用程序也必须是可靠和高效的, 以适应有限的系统资源和用户频繁使用的特点。 提供良好的用户界面。提供完善方便的编程接口,可以大大简化用户应用 程序的开发,同时将用户与系统硬件隔离,使所开发的程序具有良好的可移植 性。而对于应用程序,良好的用户界面是系统与用户进行交互的手段,美观、 使用方便是这部分的具体要求。 11 2 2 硬件特点 系统专用化,以应用为中心,简化设计,去除了不必要的部分。 小型化,要使系统容易嵌入到其它系统或设备中,需要尽可能的小型化, 不仅可以节省空间,还可以降低功耗。 高可靠性,嵌入式系统在产品中,尤其是在工业控制和家电产品中往往起 着核心控制作用控制着整个系统,必须保证高安全性和可靠性。 无需太多考虑设备升级问题,与通用计算机不同,嵌入式系统和具体应用有 机地结合在一起,它的升级换代是和具体产品同步进行的,因此嵌入式产品一旦 进入市场,具有相对较长的生命周期。 1 1 3 嵌入式系统的发展趋势 以信息家电为代表的互联网嵌入式产品,不仅为嵌入式市场展现了美好前 算1 荦绪论 景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑 战。这主要包括:支持日趋增长的功能密度、灵活的网络连接、轻便的移动应 用尊羹多臻傣酶信怠楚理,瑟外,当然还需甏对更蕊激烈瀚市场竞争。 ( 1 ) 嵌入式应用软件的开发需要功能更为强大的开发工具莘盼操 乍系统的支 持 缱蓍闲特雕菠求的成熬、宽带的酱及,i c p 稻a s p 在网上提供豹信息内容 日越丰富,应用项目更加多样,像手枧、电话及嗽冰箱、微波炉等嵌入式电子 设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计 入员一方蕊采簿更强大豹嵌入式蹙瑷器翔3 2 位、6 4 位r t s c 芯片或信号处理 器d s p 采增强处理能力;同时还采用实时多任务缡程技术霹交叉开发工具技术 来简化应用程序的设计、保障软件质量和缩短开发周期。 ( 2 ) 联黼成为必熬趋势 为适应嵌入式分程处理缝构移应属上嬲靛蓑求,匿肉2 l 擞纪螅嵌入式系 统鼷求配备标准的一种或多种网络通信接口。不但需要t c p i p 协议族软件支 持,同时由于家爝电器籀互关联( 鞠防盗报警、灯光能源控翻、影视设备和信 息终端交换信息) 及实验现场仪器的协调工l 乍等婺求,毅一代嫩入式设冬还震 具备 e e e l 3 9 4 、u s b 、c a n 、b l u e t o o t h 或i r d a 等通信接口,同时也要提供相 应的通信缀网协议软件和物蘧层驱动软件。为了支持应用软件的特定编程模 式,如w e b 或无线w 如绽毽模式,还震要相应的浏览器l 够支持如h t m l 、 w m l 、w a p 等语言。 ( 3 ) 支持小型电子设餐实现小尺寸、微功耗和低成本 失瀵足这秽特性,要求嵌入式产晶设诗耆选鼹性能捐对较低懿处理器,限 制内存容擞和复用接口芯片。这就相应提离了对嵌入式软件的设计要求。如选 用觳佳的编程模澎和不断改进算法,采用j a v a 、e 或汇编语言,优化编译器性 能等。因_ 篼,要裳软 牛开发人员甄婺有丰富瓣经验,又要掌握多秘开发语言撩 开发技术( 开发模式、交叉编译开发披术、多种平台和操作系统、驱动稷序等) 。 ( 4 ) 提供精巧的多媒体人机界面 嵌入式设备之矮以为,篓l 户援乐予接受,蒸重要蒙因之一裁篷它翻与镬甓蠢 之间的亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是 北索工业大学工学硕士学位论文 通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求鼹有以g u i 脬幕为中心的多媒体界面,阔时能够支持手写文字输入、语音拨号上网、网页 基l 菱、收发毫子瓣舞等功能。鏊蔻p d a 在显示羼幕上已实琵汉字手写输入、 斑消息语音发布,但离语音闷声翻译目前还仍有一定躐离。 1 1 。4 主流嵌入式操作系统 嵌入式操作系统( r e a l t i m ee m b e d d e do p e r a t i n gs y s t e m ,r t o s 或e o s ) 是 一耱实时弱、支磅嵌入式平台懿操 睾系统软搏,它是嵌入式系统投为莛要豹组成 部分,通常包拯与硬件相关的底层驱动软件、系统内棱、设备驱动缀口、通信协 议、图形界面等。目前,嵌入式操作系统的品种较多,据统计,仅用予信息电器 躲嵌入式操 乍系统藏畜4 0 耪左右,其中较为流行戆主豢有:w 通d o w sc e 、p a l m o s 、r e a l - t i m el i n u x 、v x w o r k s 、p s o s 、p o w e r t v 以及m i c r o w a r e 公葡的o s 一9 t 与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、 软彳拳固态纯以及艇蕉弱专月瞧等方嚣具蠢爨为突出兹憋点。 综合考虑各个嵌入式搡作系统的优缺点,我们在“o p e n e y e e 嵌入式浏览 器的实现及g u i 研究”项目中采用了l i n u x 操作系统。l i n u x 作为一个优秀的开 放潦码麴操摆系绫,越来越广泛妻叠应震予各类嵌入式系绫中。其优点在于其有功 能强大的内核,性能高效、稳定,支持多任务,内核的大小和功能可定制,并且 有广大的软件开发者的支持,而且更大的优点是免费、开源,所以现在l 1 n u x 已经藏为多数嵌入式操 萋系统豹蒡一选努锺i 是一蔽露畜l i n u x 嚣簧进行裁减, 才能更好地应用于嵌入式系统,这包括内核的重新编译,冗余模块的裁减和对系 统文件的删减、修改等。 1 2 嵌入式汶览器概 嚣 1 1 嵌入式测览器特点 由于嵌入式系统本身的软件和硬件的限制,使得p c 平台上的静通浏览器不 能用于嵌入式系统中。其主骚缀因有如下几点: 4 - ( 1 ) 普通浏览器对硬件设备要求禽 嵌入式系统般体积较小,与p c 机相比其c p u 的数据处理速度较低,系 统程序、应用程序一般装在f l a s h 成r o m 中,无存储量大的硬盘等设备;而 f l a s h 或r o m 麓存髓奔质懿份接撼对p c 季且主广“泛镬臻静硬盘、光盘等寒滋是 非常昂贵的,特别对手持式嵌入式系统而言,要求低功耗。这些特点决定了在开 发墩入式系统的测览器时,必须将浏览器所占的存储空间限制在一定韵范围内, 否则,开发出懿测览器将无法在实黪豹嵌入式系绞中菠爝。铡懿,理在p c 壤土 所使用的微软公司的i e 、网景公司的n e t s c a p e 等都对系统的c p u 速度、内存、 存储空间和功耗有着很高的要求,至少需瑟几十兆的存储空间,内存要求至少 3 2 m 或更高,这些要求罄是嵌入式系统蹶不髭达到躲;虽然可以增趣系绞弱 f l a s h 或r o m 的容量,但遮将使产品的成本大幅度提高,从而失去市场的竞 争力。裉掇嵌入式系统对c p u 速度、存储空间和功耗的限制,在不增加硬件成 本敬裁提下,采臻一秘毅斡掬攥嵌入式测菱器瞧方法,扶软件款角发寒充分考虑、 挖掘和利用系统资源,怒目前被广泛采用的一种可行的办法。 ( 2 ) 普通浏览器对软件环境要求高 不论楚运行在w i n d o w s 系统还麓l i n u x 系统上的现有浏览器,都需要育系 绞艨层庞大缒类露郛相应函数於支撩。由于这些函数对于其它嵌入式应用软侮寒 说有很多怒不使用的,因此就会大量地浪费系统存储空间,也就加大了系统开销。 ( 3 ) 功能不符合特定蒙求 现有的浏览器最常溺的功能大约只占到其设计功能的三分之一,潲时,现有 熬测览器在设诗时是按照瑟有赐户懿菸枣要求亲送行设计熬,没毒考虑到各个月 户之间的不同要求,特别是完全没有考虑嵌入式系统的要求;因此必须对其功能 迸行重新划分,保留其最常用的都分功能,阊时使其能够按照嵌入式系统及用户 的要戎进行个性化设计,著满足嵌入式系统对系绞资源开镂帮c p u 时闽开镑鼹 方面的要求。因此,现有的p c 平台上的浏熄器无法用在嵌入式系统中。针对这 种情况,就提出了嵌入式浏览器的穰念。 嵌入式滏筻器运季亍予嵌入式平台上,有两个方嚣的功能:第一,它是一个豫 络信息浏览器,支持h t t p 或卷w a p 等其它网络传输协议、支持h t m l 语富魄 语法解析和排版、s s l 安全网络加密传输、c s s 层叠式样式表、j a v a s c r i p t 语言 的解析和处理、x m l 、w m l 标记语言等;第二,这个浏览器必须适合在非p c 的嵌入式信息设备中存在、运行并完整实现传输协议、标记语言所规定的功能, 必须能够根据嵌入式设各的多样性需要而方便地进行裁减和修改,并满足信息设 备使用者对获取文字、图像、声音、视频等信息的需要。 总之,与p c 上的浏览器相比,嵌入式浏览器具有代码小、运行空间少、与 操作系统结合紧密、需要针对嵌入式系统定制开发等特点。 1 2 2 主要的嵌入式浏览器 目前,市场上出现了很多的嵌入式浏览器产品,如s p y g l a s s d e v i c e m o s a i c 、 p l a n e t w 曲、t h r i v e i p a n e l 、t e k n e m ab r o w s e r 、a c c e s sn e t f r o n t 、e b s n e t m i c r o b r o w s e r 、e n r e a c he b r o w s e r 、l i g h to f a d a m a s 、i c eb r o w s e r 、e s p i a le s c a p e 、 中科院的c a s s 、w i n d o w s c e 内嵌的简化版的i e 等等。其中,除了i e 、c a s s 、 t h r i v e i p a n e l 外,大都还不支持汉字显示。下面是一些比较成熟的嵌入式浏览器 的介绍: ( 1 ) i p a n e l i p a n e l 嵌入式浏览器由深圳茁壮网络公司开发,得到包括国内外众多专业 芯片供应商、设备厂商的测试和移植使用,是目前可以见到的比较优秀的一款 嵌入式浏览器。 i p a n e l 的特性: 接入方式:m o d e r r d e t h e m e t 信号输出:v g a 、a v 、s v i d e o 协议支持:t c p i p 、p p p 、h 1 t r p l 0 1 1 、h t m l 4 0 、j a v a s c r i p t l 3 、s s l 2 0 3 0 电视甫0 式:p a i _ i 、p a l d k 、p a l b g 、n t s c 彩色显示:1 6 位真彩色,色彩鲜艳逼真 多国语言支持:中文、英文、日文等亚洲双字节语系,英文、德文、法文、西 班牙、葡萄牙、俄文等欧洲语系 电子邮件:s m t p p o p 3 ,具备m a i l l i s t 功能 打印支持:在线打印、网页打印 第1 章绪论 ( 2 ) n e t f r o n t n e t f r o n t 在有限的空间里,有很高的运行效率。它由许多的标准模块组成。 包捂:w e bb r o w s e r 、i n t e m e tm a i l 、p p p 溪动、t c p 踅p 模块、及其它i n t e m e t 访问模块。通过添加可选模块,可以扩展n e t f r o n t 的功能。包括:j a v a - v m 、 手鬻识别模块、s s l 模块、动画模块、流视频音频模块等。 n e f f r o n 瀚内核小于2 2 0 k b 。它的援疑纯帮可舟缀的设计,使褥设备翻造裔可 以只选择特定需蒙的功娆。这使得他们拥有了一个具有全部功糍、且离性能的 嵌入式浏览器系统。它只要2 m b 的r a m 和i m b 的r o m 。 n e f f r o n 垃5 醵一整关键将往: - 完全支掩h t m l 3 ,2 、部分h t m l 4 。0 、f r a m e s 、j a v a s c r i p t 、c o o k i e s 、w e b - p r i n t i n g 、 和多种语言 模块纯、可升缀的绪鞠,通过应用中特定的模块和c u g i n s ,可以被增强鬣改 变浏览器的多数功能 商层( b r o w s e rk e r n e l 、p l u g i n 模块等等) 和o s c p u 是独立的,很容易移植列 不瀚平台和操作系统上 独立的用户界裰( u i ) 层,设备制造齑可以设计鱼己独特的爨亟,使测菱器 看起来像魑专为他们的产品设计的 允许硬件和软件共同发展,推商市场的速度加快 c s e ( c l i e n ts i d ee x t e n s i o n ) 使阻h t m l 为基础瓣应燃麴发矮成为可能 ( 3 ) v i e w m l v i e w l v i l ( v i e w a b t e m a r k u pl a n g u a g e ) 浏览器和前两种浏览器不问。它是 第个免熬兹,o p e ns o u r c e 鳃w e b 浏蹩器,专门针对嵌入式l i n u x 平台进芎亍开 发。v i e w m l 的灏代码是公开的,任何人都可以为它开发新的功能、娥对它避 行维护。嵌入式l i n u x 的研究成果也会对它的发展产生促避作用。它的产生加 快了带有测筻器麴设备戆牙发秘应用。恻热,掌上迄藏,导蕊系统、迷你电话 和机顶盒等。现在,包括界面的v i e w m l 浏览器需要2 ,1 m b 的r a m 。当有磁 盘镜象时,仅需要7 6 0 k 。它的篇一个版本支持h t m l3 2 ,简单用户界面和基 本懿j a v a s c i p t 熊器器。它基于k d 3 e 懿k f r n ( k d e f i l e m a n a g e r ) 帮f l t k ( f a s t l i g h t t o o lk i t ) 开发的,可以在标准的x 窗口系统和m i c r o w i n d o w s 嵌入式窗口系统 下运行。它提供给了o e m 高质量的,小尺寸的浏览器。 1 3 课题选取及主要研究内容 从前面的介绍中可以看出,嵌入式浏览器有着极好的市场前景。但是目前的 嵌入式浏览器产品大多不够成熟,实用化程度不高。有些没有针对电视机等显示 设备进行优化,有些不容易进行系统移植或修改,有些只支持英文不支持包括中 文在内的双字节语言显示,还有一些代码过大占用资源过多。因此深入研究嵌入 式浏览器技术并实现相应产品是具有很高的研究价值和市场价值。 本论文以计算机学院和北京灵思信息系统有限公司合作开发的项目为背景, 研究及开发o p e n e y e e 嵌入式浏览器。主要研究的内容包括浏览器的图形系统移 植及j a v a s c r i p t 语言支持部分。 2 1h t m l 语言 第2 意浏览器相关技术介绍 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 ,趣文本链接标记语言) 语言是网络世赛 进行信息交换的最主要语言之一。h t m l 语言属予一种标记语言,它将纯文本和 摄式纯指令混合在一莛寒反映格式化豹文本。 h t m l 语法的聪个基本组成都分:t a g 和数据 ( 1 ) t a g 是 之间的部分,由t a g 名和属性组成。比如i m gs r c = “a g i f h e i g h t = 3 0 i m g 是t a g 名,s r c 、h e i g h t 是耩往名,a g i f , 3 0 则是属性值,t a g 名积属性楚大小霹无关熬。 h t m l 元索按功能来分可以分为三类: 夺用于表示h t m l 文档结构的元素如l i s t 、t a b l e 、t e s t 夺用于表示h t m l 文档驻示样式的元索如f o n t 、c o l o r 、s t y l e s h e e t 夺罔来提供h t m l 文档交互功淹的元索如f o r m 、s c r i p t ( 2 ) 数据部分楚h t m l 文档中t a g 良井豹帮分,在测笺器中一般解释这麴数 据成为文字。这燃数据并非直接输出到浏览器上,也需要进行必要的分析解释, 主要是针对于转义字符、回车换行符、空格符的处理等。 一个h t m l 文橙通常包括鲡下三部分: 专一令包含h t m e 文档舨本信惑黢行 夺文楼头郝分,由元素h e a d 袭示 夺文档体部分,由元素b o d y 表示 下面即为一个简单h t m l 文档示例: 北京工业大学工学硕士学位论文 m y f i r s th t m ld o c u m e n t h e l l ow o r l d ! 包含h t m l 文档版本信息的行定义了此h t m l 文档正在使用的d t d ( d o c u m e n t t y p ed e f i n i t i o n ) 。d t d 是一个文本文件,里面用形式化的方法给出 了此h t m l 文档各个元素、属性的定义。h t m l 4 0 1 中规定了三种d t d 文件, h t m l 文档必须具体指定其中一种。三种d t d 文件不同之处在于它们所支持 的h t m l 元素数量不同,这三种d t d 文件分别是: ( 1 ) h t m l4 0 1s t r i c td t d ,这种d t d 文件支持的h t m l 元素中排除了如下 两类元素:那些用于显示功能的、w 3 c 希望由样式表( s t y l es h e e t ) 来替代的 h t m l 元素和属性( p r e s e n t a t i o ne l e m e n t sa n d a t t r i b u t e s ) ;f r a m e s e t 文档中出现 的元素。如果h t m l 文档使用的是这种d t d ,则必须在文档中包含类似如下 的行: ( 2 ) h t m l4 叭t r a n s i t i o n a ld t d ,这种d t d 文件包含h t m l 4 o ls t r i c td t d 支持的所有元素外加h t m l4 0 1s t r i c td t d 排除的第一类元素( 即用于显示功 能的元素) 。如果h t m l 文档使用的是这种d t d ,则必须在文档中包含类似如 下的行: ( 3 ) h t m l4 ,0 1f r a m e s e td t d ,这种d t d 文件包含h t m l 4 叭s t r i c td t d 支 持的所有元素外加它所排除的两类元素。如果h t m l 文档使用的是这种d t d , 则必须在文档中包含类似如下的行: 文档的头部一般很简短,在头部只需作少量工作。头部用于定义适用于整 个h t m l 文裆的属性。其中簸重要的是页面的标题( t i t l e ) ,即浏览器在进行 测蹩页_ 垂时最上端兹罄分,它一毁周寒显示该夏嚣粒页蘸名。攫 标识 头部的开始, 标识头部的结束。 位于 和 之间的是h t m l 文档的主体。主体是h t m l 文档 煞核心部分,氇燕最为簸杂帮灵活多褒躬部分,文档豹肉容主要集中在该部分, 是浏览器萋点解释的部分。d t d 的定义跟d o m ( d o c u m e n to b j e c tm o d e 文档 对象模型) 的语法树、排版树、c s s 、x m l 的实现有密切关系,使用不同的 d t d 文停莲至可以完全霪薪定义h t m l 语言,西丽潮笕器必须首先对d t d 文 件进行分柝,d t d 的分孝厅是一个复杂的过稷,需要实现预定义的对象、属性郛 方法。 2 2j a v a s e r i p t 语言 j a v a s c r i p t 是s u n 公司和n e t s c a p e 公司合作开发的一羊申跨平台、开放式鲍 脚本描述语言,也是j a v a 语言的衍生产品。它可以方便的创建幼态的、交互的 阐页,弥 h t m l 语言仅能籀述静态售惑豹缺点。它箍供了一整套的客户端 a p i ( a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) ,耀来改进静态w 曲页露。 j a v a s c r i p t 由浏览器从源代码直接解释执行,执行速度较慢。它必须逐行的 分剿解释,通常一次缀合一个关键字和参数。 在h t m l 文档中嵌入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 表达式,作为h t m l 的属性 每在包含其它的h t m l 标记时 = 1 0 0 m h z 第3 章浏器的整体结构设计 f l a s h 占用:4 m 到5 m r a m : = 1 6 m 软俘平台:臻乎# 系统l i n u x 、v x w o r k s 、u c l i n u x 3 1 3 设计原则 o p e n e y e e 是面向中、低端嵌入式设备开发的浏览器。由于嵌入式设备具有 多棒性匏蒋点:c p u 癸炎多踅淫麓力枢对较低、国存小、f l a s hm e m o r y 有疆等 特点,同时输入和显示也没有标准。综合考虑这黧因素,o p e n e y e e 的主要没 计原则如下: ( 1 ) 司。移孛壹。暴露c 语言实虢,保持与嵌入式操作系绞、疆捧平台无关莲。 ( 2 ) 可裁减、可配置。对于嵌入式畚统来说,可救减、可配置是关键的系统特 性,必须重点考虑。所以浏览器要能够根据不同的硬件环境和用户需求进 芎亍裁减,鲡可选配是否支持j a v a s c f i p t 、鹜片显示等等。这样羲满足了客 户的要求又使褥浏览器可以做的比较小,降低了成本。 ( 3 ) 可扩展、易维护。软件的所有功能,都被分解为独立的模块,通过模块间 接日来相互调用。各个模浃接口可扩震,灵活,随着携议舔准靛不断扩袋, 浏览瓣也可遴雩亍棚应扩展。 ( 4 ) 高性能。在保证浏览器能够正常运行的情况下,考虑到嵌入式环境对内 存的严捂要藩,尽篷减少可执行代码所需的警闻。并尽量提高程序运行瀚 速度,为用户提供更理想的网页鳃释效果。 ( s ) 容错性。浏览器不同于多数大型应用程序的个主要区别就是容错性的 处理,浏览器需要其有缎强的容错往,函为现实中的网页狠多是没有完全 按照h t m l 语言嫂范或j a v a s c r i p t 语富规薨书写的,为了能够达到相同魄 显示戚解释效果,浏览器就要肖大量的容错机制,这不同于在c 语言这 类编译型语言,比如在c 语言羹语句结束没有甭“t ”,c 语言编译器会编 译出错退出,但浏楚器舅疑寿的语言、语法郡是解糕型的,编译爨就蔫器 有很强的容错机制,遇到各种错误都不能退出,而且还要尽可能的向下解 释,并且保证正确,所以溯览器必须能够主动处理群遇到晌各种异常情况, 馕欺 譬能够稳定正喾螅工体。 3 2 体系结构 羧豢以上所疆出魏窝览嚣应其有熬功缝吸及嵌入式攥馋系统兹特点,设诗 浏览器的体系结构如图3 - 1 所示, l i8 r 。w 控制援块( u i 模浚 孵 显p 缓存管理模块 轿 t 不 模模 翁 块块 钞 传输协议模块 嬲3 - to p e n e y e e 镩系臻擒 f i g u r e 3 1s y s t e ms t r u c t u r eo f o p e n e y e - e o p e n e y e e 的软件体系结构如图所示,主骚由传输、解析和显示等几个模块组 成。 ( 1 ) 传输协议模块:潮览器拣网络接翻部分,是一个拯蒙、独立斡黼络接口 层,支持多种协议,所有的浏览器网络数据传输都需要通过浏览器的传 输层。 ( 2 ) 缓存管瓒模块:受责两页、图像数据的装载和销毁操作。对用户的数据 请求,缓存管理模块根据缓存数据决定是否建立网络连接进行网络数据 获取。 ( 3 ) 解析禳块:由于直接下载的页面数据是以h t m l 语言为主的炎儆文本静 文件,不能直接作为显示模块的输入,需要对其进行处理。该模块负责 爨器h t m l 文档,生成带有显示偿息葶丑控制信息的中同结粜;周时也负 1 8n 第0 覃浏盟器的整体结构设计 责图像、声音数掇的解码。 ( 4 ) 显示模块:按照一定的规则显示由解析模块解析过的网页内容。 ( 5 ) 控割模块:处理用户与夏面静交互。 其它还有一些辅助髅的模块,比如j a v a s c r i p t 攘坟,负责解释执行网页中驰 j a v a s c r i p t 脚本。f l a s h 引擎模块负责解析、播放页面中的f l a s h 动画,f l a s h 引 擎楚通过p l u g i n 的方式被浏览器调雳的。 o p e n e y e e 系统漉程如下: ( 1 ) 浏览器启动,进行一系列的初始化工作,如初始化网络、数据缓存、 全弱对象、c o o k i e s 等吾个部分。 ( 2 ) 用户竣入u r l 地址。 ( 3 ) 控制模块首先获取用户提交的u r l ,判断此u r l 是否为当前页面正在 请求的u r l ,如果是煎砖忽略此u r l 请求,以免熬复发送请求,如栗不 是煲痒止逛兹页甄螅u r l 请袋,并提交薪触u r l 请求,以及删新导舷 栏、进度条等,然后将请求传递到缓存管理模块。 ( 4 ) 缓存管理模块首先在缓存中鸯找该u r l 是否存在,是粥将数诺运圈,不 存在则请求扶网终上获取数据。 ( 5 ) 数据到来后解析模块对其进行分析解释,照示模块负责在屏幕上显示输 出。 3 。3 核心模块 3 3 1 缓存管理模块 为了减少网终上鳇不必簧粒数攒传埝,粕姨浏楚速度,c a c h e 毒晁铡是必蓑熬。 c a c h e 不是简单的存储已浏览过的网页资源,而是有一套完整的管理、控制资源 的机制。玄建立在h a s h 表和u r l 为难一索引值的基础上,以资源创建的时间 亲囊义避蠢 - d k s h 表懿存德援则。每个珏暇p 黔黩答头帮罄包岔有d a t e 域表 明h t t p 数据创建的时间,在下一次访问同样的资源时以此判断是否需要重新获 得该网络资源,网络访润失败h t t p 返回3 0 4 n o tm o d i f y 错误a 缓存管理模块负责网页、图像数据的装载和删除操作。对用户的数据请求, 缓存管理模块根据缓存数据决定是否建立网络连接进行网络数据获取。 c a c h e 分为两个部分c a c h e 和d i c a c h e ,c a c h e 是所有数据的缓存区, d i c a c h e 是被解码之后的图象数据的缓存区。d i c a c h e 可能会陌生一点,这里对 d i c a c h e 解释一下,由于o p e n e y e e 是针对嵌入式或运算能力比较弱的环境写的 浏览器而在这种环境下,图像解码所消耗的c p u 就比较明显,如果c a c h e 中的 图像每次被命中之后,都要经过解码再显示,某些情况下会占用较多的c p u , 尤其是在有动态图像的情况,c p u 的工作几乎全部消耗在了图像解码上,因而 也就提出了d i c a c h e 的概念,它的作用就是缓存解码之后的图像数据,当d i c a c h e 被命中之后,数据直接用于显示以节省c p u 时间,但这样做弊端也很明显,就 是牺牲了部分内存,所以d i c a c h e 作为一个开关选项在o p e n e y e e 的配置文件中 有定义,可以根据具体的应用环境开启。例如在我们的a r c a 机器上打开这一 选项证明的确是使浏览器的运行效率有所提高,d i c a c h e 和c a c h e 在实现上基本 上是一样的,相当于c a c a h e 下的子c a c h e 因而我们这里只介绍c a c h e 的工作原 理。 c a c h e 模块使用了c a c h e 客户的概念。每一个请求数据的客户都是一个c a c h e 客户,都有一个c a c h e c l i e n t 数据结构与客户一一对应的,即便两个c a c h e 客户 都请求同一个数据也会建立两个c l i e n t ,c a c h e 客户只与c a c h e c l i e n t 通讯,当 个c a c h e 客户的数据全部到齐并处理之后,与客户对应的c a c h e c l i e n t 会被立刻 销毁。 c a c h e h a s h 是真正存放缓存数据的地方,它是以哈希表的形式存放的,以便 于快速查找,数据成员是c a c h e d a t at ,c a c h e h a s h t a b l e 会一直存放于内存之中, 直到浏览器退出。 主要数据结构: s t r u c t c a c h e c l i e n t , g i n tk e y ; c o n s td i l l o u r l * u r l g u c h a r4 b u f ; p 这个c l i e n t 的唯一标识符+ 产数据的u r l + 严数据内容+ g u i n tb u t s i z e ; e ac 奎强a c kte a t l b a c k ; v o i d4 c b d a t a ; v o i d + w e b : ; t y p e d e f s t r u c t c o n s td i l l o l m8 u r l ; c o i l s tc h a r4 t y p e ; g s t f i n g4 h e a d e r : c o n s td i l l o u r l * l o c a t i o n v 0 j d d a t a : 严数据长度+ 产姨起客户时麴露潺函数s 7 严传给回调函数的参数+ 产指向w 曲数据结构的指针* 尹缓存楚u r l e , 。m i m e 类烈4 8 h t t p 头部8 芦耋定向赘u r l 。, 产数据4 , s i z e tv a l i d s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床输血交叉配血技师考试试卷及答案
- 2026年高考物理临考冲刺卷01(基础卷)(全国适用)(全解全析)
- 2025年中国储备棉管理有限公司直属企业招聘73人(兰州有岗)笔试历年参考题库附带答案详解
- 2025山西地质集团有限公司物测院等3家二级子公司招聘37人笔试历年参考题库附带答案详解
- 2025安徽蚌埠市国有资本运营控股集团有限公司招聘4人笔试历年参考题库附带答案详解
- 2025四川长虹美菱股份有限公司招聘88人笔试历年参考题库附带答案详解
- 2025四川甘孜州康定市市属国有企业招聘康定市投资发展集团有限公司经理层人员笔试历年参考题库附带答案详解
- 2025北京京能清洁能源电力内蒙古分公司招聘31人笔试历年参考题库附带答案详解
- 2025内蒙古电力集团内蒙古康远监理公司成熟型电力工程监理人才招聘61人笔试历年参考题库附带答案详解
- 2025京东方科技集团股份有限公司全球校园招聘正式启动笔试历年参考题库附带答案详解
- 战斗机介绍教学课件
- 新疆园林植物养护课件
- 浙江省中考数学热点题型专题(01)代数推理问题 课件
- 2025年云南省高考生物试卷真题(含答案)
- 2025至2030中国神经病理性疼痛管理行业发展趋势分析与未来投资战略咨询研究报告
- 天津市五区县重点校联考2024-2025学年高二下学期4月期中地理试卷(含答案)
- 汉中市入团试题及答案
- 2024年中国戏曲学院辅导员考试真题
- 风力发电技术-海上风电场(新能源发电技术)
- Illustrator图形设计与案例应用 电子教案
- 产品认证培训试题及答案
评论
0/150
提交评论