<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于LINUX的嵌入式瀏覽器的設計與實(shí)現

基于LINUX的嵌入式瀏覽器的設計與實(shí)現

作者: 時(shí)間:2012-04-20 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:可以廣泛應用于各種信息電器和便攜式網(wǎng)絡(luò )終端中,在工業(yè)控制領(lǐng)域也有著(zhù)非常廣闊的應用前景。本文提出了一種,介紹了方法和主要功能特點(diǎn)。該現有的GUI,利用系統的HTEP函數庫網(wǎng)絡(luò )訪(fǎng)問(wèn),根據文檔類(lèi)型定義和層疊式樣式表規范,解析HTML文件和排版顯示。此系統在MiniGUI下已成功。

本文引用地址:http://dyxdggzs.com/article/149189.htm

0引言隨著(zhù)Intemet普及率的迅猛增長(cháng),瀏覽器成為獲取信息的標準工具,并且已經(jīng)為廣大Intemet用戶(hù)所接受。與瀏覽器相配合的各類(lèi)軟件,如視頻、音頻的Plug-in,都十分豐富。Intemet上產(chǎn)生了大量的可瀏覽資源,也證明了瀏覽器這種方式的正確性,瀏覽器將成為網(wǎng)絡(luò )生活中的核心。另一方面,消費電子、計算機、通信(3C)一體化趨勢日趨明顯,嵌入式技術(shù)成為研究熱點(diǎn),機頂盒、信息家電等新產(chǎn)品的出現讓人們開(kāi)始關(guān)注嵌入式系統,嵌入式瀏覽器也隨之浮出水面。嵌入式瀏覽器可以廣泛應用于Intenet-Tv、iDVD、Web終端、數字電視機頂盒、掌上電腦等各種信息電器和便攜式網(wǎng)絡(luò )終端中,在工業(yè)控制領(lǐng)域也有著(zhù)非常廣闊的應用前景。

本文提出了一種I腫D(系統的嵌入式瀏覽器,并介紹了該瀏覽器的實(shí)現方法。

1系統基本原理1。1嵌入式瀏覽器的基本工作流程輸入URL,通過(guò)網(wǎng)絡(luò )讀取對應HTML文件:交給HTML的解析器進(jìn)行解析,在解析的過(guò)程中如果發(fā)現新的URL(主要是圖片、樣式單以及Jscript。外部代碼),提交給網(wǎng)絡(luò )部分去讀??;在解析的過(guò)程中形成DOM樹(shù)和Render樹(shù);最后利用解析結果生成對應控件并排版顯示。層次關(guān)系如圖1所示。

1。2嵌入式系統對嵌入式應用環(huán)境下的系統,要求代碼空間小,運行速度快,資源需求少??梢酝ㄟ^(guò)對通用I刪JX系統的配置和功能代碼精簡(jiǎn)得到,也可采用商業(yè)的嵌入式LINUX。

1。3嵌入式GUIGUI(圖形用戶(hù)接口)是瀏覽器的運行平臺,并提供了窗口編程的接口函數。嵌入式GUI必須運行效率高,功能精干。常用的嵌入式GUI有MicroWindows、OpenGUI、QT/Enbedded、MiniGui等。

1。4網(wǎng)絡(luò )訪(fǎng)問(wèn)網(wǎng)絡(luò )訪(fǎng)問(wèn)通過(guò)HTTP(超文本傳輸協(xié)議)實(shí)現瀏覽器與Web服務(wù)器之間的通信,H'ITP規定了發(fā)送和處理請求的標準方式,規定了瀏覽器和服務(wù)器之間傳輸的消息格式及各種控制信息。

1。5DTDDTD(文檔類(lèi)型定義)定義了HTML文件中所有的標簽和屬性,及標簽的嵌套關(guān)系和屬性的取值范圍。它是解析HTML文件的基礎。

1。6DOMDOM(文檔對象模型)是HTML,文件解析的結果。它的內容包括了當前HTML文件中所有的元素、元素的子元素、元素的屬性、元素的樣式、元素的事件等。

1。7RENDER樹(shù)RENDER樹(shù)供排版輸出程序使用。RENDER.樹(shù)結構與DOM樹(shù)類(lèi)似,HTML解析器生成DOM樹(shù)的同時(shí)生成RENDER樹(shù)。RENDER樹(shù)的內容定義了實(shí)際顯示區域的嵌套關(guān)系。

2系統概要2。1HTML解析HTML解析主要功能是分析取得的HTML文件,辨認出標簽、屬性和內容,并根據DTD定義校驗元素結構關(guān)系。解析結果形成DOM樹(shù)和RENDER樹(shù),供輸出引擎排版顯示。如圖2所示。

圖2瀏覽器基本工作流程HTML解析可分為以下幾個(gè)子模塊:2。1。1DTD構建。

DTD定義了HTMl。的語(yǔ)法規范。根據應用需要可選擇TransitionalDTD、FIarIlesetDTD及StrictDTD。依據DTD規范說(shuō)明,可以建立啪表格,每一個(gè)DTD表格記錄定義一種標簽的基本信息,包括元素ID、元素名、子元素列表、屬性列表等。解析HTML.必須首先構建DTD表格。

2。1。2語(yǔ)法分析HTML文件語(yǔ)法分析的主要思路是:讀HTMI。緩存區。如是起始標簽,分析標簽內的標簽名、屬性和屬性值,根據[riD定義判斷此標簽是否能被棧頂標簽包容(為判斷元素的嵌套關(guān)系。建立的一個(gè)棧表),如合法,生成DOM節點(diǎn),如果此標簽需有結束標簽,此標簽入棧;如包含關(guān)系不正確,放棄此標簽,繼續讀緩存。如是結束標簽,從棧頂向下查找有否對應起始標簽,如有,將對應起始標簽以上的棧元素出棧;如沒(méi)有,放棄此標簽,繼續讀緩存。如是標簽間的文本,則放至文本緩沖區,直到讀到標簽時(shí),生成文本DOM節點(diǎn),插入到DOM樹(shù)中。在生成DOM節點(diǎn)時(shí),生成對應的RENDER節點(diǎn)(DOM節點(diǎn)與RENDER節點(diǎn)不一定對應)。每個(gè)RENDER節點(diǎn)代表一矩形區域,RENDER類(lèi)型指明該矩形區域的特性,可分為:BlockBOX、InlineBOX、LineBOX、AnonymousBlockBOX等。在后面排版顯示中將介紹各類(lèi)RENDER的使用。

2。1。3CSS的應用作用于標簽的CSS可分為三類(lèi):標簽的缺省樣式、從上層標簽繼承的樣式、標簽屬性中定義的樣式。它們從小到大的應用優(yōu)先級是:缺省樣式、繼承上層標簽的樣式、標簽屬性中定義的樣式。在生成DOM節點(diǎn)時(shí),分析以上三類(lèi)樣式定義.得到當前元素的應用樣式單。樣式的數據結構與屬性類(lèi)似。

2。2排版顯示排版輸出模塊利用對HTML文件解析的結果DOM樹(shù)和RENDER樹(shù),生成瀏覽器窗口及相應的控件,并在屏幕上排版顯示。排版是基于CSS2的規范進(jìn)行的。

排版顯示基本原理:所有的HTML元素在屏幕上都表示為矩形區域(Box)。排版實(shí)際上就是把這些Box擺到正確的位置上。Box主要可分為InlineBox、BlockBox。BlockBox代表一個(gè)矩形容器框,Linlinebox表現為文字、圖片等具體內容形成的矩形區域。一個(gè)BlockBox的直系兒子要么全是Block,要么全是Inline。若一個(gè)BlockBox的兒子中,既有Block又有Inline,就要包裝一層.即把inlinebox用一個(gè)BlockBox包起來(lái)。這個(gè)自動(dòng)產(chǎn)生的BlockBox就是所謂的AnonymousBlockBox。若一個(gè)Lnline:Box有BlockLeve的兒子,那么它自己也應轉為Blocklevel。即InlineBox不可能有BlockBox做兒子。(Blockbox和Inlinebox的包含關(guān)系要求的實(shí)現在前面生成RENDER節點(diǎn)時(shí)解決)一個(gè)Box可以在三種定位方式下進(jìn)行排版:常規定位、絕對定位、浮動(dòng)定位。通過(guò)元索的屬性position和float可以設置定位方式。

2。3網(wǎng)絡(luò )訪(fǎng)問(wèn)利用LINUX系統的HTTP函數庫,實(shí)現瀏覽器與WEB服務(wù)器的通訊。為了管理多個(gè)通訊請求,需要建立任務(wù)隊列。請求得到響應后,響應結果放在緩沖區,發(fā)送消息回對應控件,由控件的處理函數分析響應內容。原理如圖3所示。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>