当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于LINUX的嵌入式浏览器的设计与实现

摘要:嵌入式浏览器可以广泛应用于各种信息电器和便携式网络终端中,在工业控制领域也有着非常广阔的应用前景。本文提出了一种基于LINUX嵌入式浏览器,介绍了实现方法和主要功能特点。该浏览器基于现有的嵌入式GUI,利用系统的HTEP函数库实现网络访问,根据文档类型定义和层叠式样式表规范,解析HTML文件和排版显示。此系统在MiniGUI下已成功实现。

0引言随着Intemet普及率的迅猛增长,浏览器成为获取信息的标准工具,并且已经为广大Intemet用户所接受。与浏览器相配合的各类软件,如视频、音频的Plug-in,都十分丰富。Intemet上产生了大量的可浏览资源,也证明了浏览器这种方式的正确性,浏览器将成为网络生活中的核心。另一方面,消费电子、计算机、通信(3C)一体化趋势日趋明显,嵌入式技术成为研究热点,机顶盒、信息家电等新产品的出现让人们开始关注嵌入式系统,嵌入式浏览器也随之浮出水面。嵌入式浏览器可以广泛应用于Intenet-Tv、iDVD、Web终端、数字电视机顶盒、掌上电脑等各种信息电器和便携式网络终端中,在工业控制领域也有着非常广阔的应用前景。

本文提出了一种基于I肿D(系统的嵌入式浏览器,并介绍了该浏览器的设计实现方法。

1系统基本原理1。1嵌入式浏览器的基本工作流程输入URL,通过网络读取对应HTML文件:交给HTML的解析器进行解析,在解析的过程中如果发现新的URL(主要是图片、样式单以及Jscript。外部代码),提交给网络部分去读取;在解析的过程中形成DOM树和Render树;最后利用解析结果生成对应控件并排版显示。层次关系如图1所示。

1。2嵌入式LINUX系统对嵌入式应用环境下的LINUX系统,要求代码空间小,运行速度快,资源需求少。可以通过对通用I删JX系统的配置和功能代码精简得到,也可采用商业的嵌入式LINUX。

1。3嵌入式GUIGUI(图形用户接口)是浏览器的运行平台,并提供了窗口编程的接口函数。嵌入式GUI必须运行效率高,功能精干。常用的嵌入式GUI有MicroWindows、OpenGUI、QT/Enbedded、MiniGui等。

1。4网络访问网络访问通过HTTP(超文本传输协议)实现浏览器与Web服务器之间的通信,H‘ITP规定了发送和处理请求的标准方式,规定了浏览器和服务器之间传输的消息格式及各种控制信息。

1。5DTDDTD(文档类型定义)定义了HTML文件中所有的标签和属性,及标签的嵌套关系和属性的取值范围。它是解析HTML文件的基础。

1。6DOMDOM(文档对象模型)是HTML,文件解析的结果。它的内容包括了当前HTML文件中所有的元素、元素的子元素、元素的属性、元素的样式、元素的事件等。

1。7RENDER树RENDER树供排版输出程序使用。RENDER.树结构与DOM树类似,HTML解析器生成DOM树的同时生成RENDER树。RENDER树的内容定义了实际显示区域的嵌套关系。

2系统设计概要2。1HTML解析HTML解析主要功能是分析取得的HTML文件,辨认出标签、属性和内容,并根据DTD定义校验元素结构关系。解析结果形成DOM树和RENDER树,供输出引擎排版显示。如图2所示。

图2浏览器基本工作流程HTML解析可分为以下几个子模块:2。1。1DTD构建。

DTD定义了HTMl。的语法规范。根据应用需要可选择TransitionalDTD、FIarIlesetDTD及StrictDTD。依据DTD规范说明,可以建立啪表格,每一个DTD表格记录定义一种标签的基本信息,包括元素ID、元素名、子元素列表、属性列表等。解析HTML.必须首先构建DTD表格。

2。1。2语法分析HTML文件语法分析的主要思路是:读HTMI。缓存区。如是起始标签,分析标签内的标签名、属性和属性值,根据[riD定义判断此标签是否能被栈顶标签包容(为判断元素的嵌套关系。建立的一个栈表),如合法,生成DOM节点,如果此标签需有结束标签,此标签入栈;如包含关系不正确,放弃此标签,继续读缓存。如是结束标签,从栈顶向下查找有否对应起始标签,如有,将对应起始标签以上的栈元素出栈;如没有,放弃此标签,继续读缓存。如是标签间的文本,则放至文本缓冲区,直到读到标签时,生成文本DOM节点,插入到DOM树中。在生成DOM节点时,生成对应的RENDER节点(DOM节点与RENDER节点不一定对应)。每个RENDER节点代表一矩形区域,RENDER类型指明该矩形区域的特性,可分为:BlockBOX、InlineBOX、LineBOX、AnonymousBlockBOX等。在后面排版显示中将介绍各类RENDER的使用。

2。1。3CSS的应用作用于标签的CSS可分为三类:标签的缺省样式、从上层标签继承的样式、标签属性中定义的样式。它们从小到大的应用优先级是:缺省样式、继承上层标签的样式、标签属性中定义的样式。在生成DOM节点时,分析以上三类样式定义.得到当前元素的应用样式单。样式的数据结构与属性类似。

2。2排版显示排版输出模块利用对HTML文件解析的结果DOM树和RENDER树,生成浏览器窗口及相应的控件,并在屏幕上排版显示。排版是基于CSS2的规范进行的。

排版显示基本原理:所有的HTML元素在屏幕上都表示为矩形区域(Box)。排版实际上就是把这些Box摆到正确的位置上。Box主要可分为InlineBox、BlockBox。BlockBox代表一个矩形容器框,Linlinebox表现为文字、图片等具体内容形成的矩形区域。一个BlockBox的直系儿子要么全是Block,要么全是Inline。若一个BlockBox的儿子中,既有Block又有Inline,就要包装一层.即把inlinebox用一个BlockBox包起来。这个自动产生的BlockBox就是所谓的AnonymousBlockBox。若一个Lnline:Box有BlockLeve的儿子,那么它自己也应转为Blocklevel。即InlineBox不可能有BlockBox做儿子。(Blockbox和Inlinebox的包含关系要求的实现在前面生成RENDER节点时解决)一个Box可以在三种定位方式下进行排版:常规定位、绝对定位、浮动定位。通过元索的属性position和float可以设置定位方式。

2。3网络访问利用LINUX系统的HTTP函数库,实现浏览器与WEB服务器的通讯。为了管理多个通讯请求,需要建立任务队列。请求得到响应后,响应结果放在缓冲区,发送消息回对应控件,由控件的处理函数分析响应内容。原理如图3所示。[!--empirenews.page--]

图3网络访问原理主要接口函数:AddJobTbQueue(structJobJob):加入新任务到任务队列GetHTMLFile();利用HTTP函数实现任务队列的头个任务NetworkContml():任务调度3系统功能特点及实现情况此系统设计实现了浏览器的基本功能,能够满足一般嵌入式环境的需要。在优秀的嵌入式GUI上开发项目,可以借用最新的科研成果,加快开发进度。系统结构简单,易于实现。代码量较小,资源占用较少。在国产著名自由软件MiniGUI下已成功实现。

4结语本文的创新点是基于现有的嵌入式GUI,利用系统的HTEP函数库实现网络访问,根据文档类型定义和层叠式样式表规范,解析HTML文件和排版显示。设计与实现了基于LINUX系统的嵌入式浏览器的基本功能,满足一般嵌入式环境的需要。其次,本系统简单,易于实现,代码较小,资源占有较少。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭