當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于LINUX的嵌入式瀏覽器的設(shè)計與實現(xiàn)

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

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

本文提出了一種基于I腫D(系統(tǒng)的嵌入式瀏覽器,并介紹了該瀏覽器的設(shè)計實現(xiàn)方法。

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

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

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

1。4網(wǎng)絡(luò)訪問網(wǎng)絡(luò)訪問通過HTTP(超文本傳輸協(xié)議)實現(xiàn)瀏覽器與Web服務(wù)器之間的通信,H‘ITP規(guī)定了發(fā)送和處理請求的標(biāo)準(zhǔn)方式,規(guī)定了瀏覽器和服務(wù)器之間傳輸?shù)南⒏袷郊案鞣N控制信息。

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

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

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

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

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

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

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

2。1。3CSS的應(yīng)用作用于標(biāo)簽的CSS可分為三類:標(biāo)簽的缺省樣式、從上層標(biāo)簽繼承的樣式、標(biāo)簽屬性中定義的樣式。它們從小到大的應(yīng)用優(yōu)先級是:缺省樣式、繼承上層標(biāo)簽的樣式、標(biāo)簽屬性中定義的樣式。在生成DOM節(jié)點時,分析以上三類樣式定義.得到當(dāng)前元素的應(yīng)用樣式單。樣式的數(shù)據(jù)結(jié)構(gòu)與屬性類似。

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

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

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

圖3網(wǎng)絡(luò)訪問原理主要接口函數(shù):AddJobTbQueue(structJobJob):加入新任務(wù)到任務(wù)隊列GetHTMLFile();利用HTTP函數(shù)實現(xiàn)任務(wù)隊列的頭個任務(wù)NetworkContml():任務(wù)調(diào)度3系統(tǒng)功能特點及實現(xiàn)情況此系統(tǒng)設(shè)計實現(xiàn)了瀏覽器的基本功能,能夠滿足一般嵌入式環(huán)境的需要。在優(yōu)秀的嵌入式GUI上開發(fā)項目,可以借用最新的科研成果,加快開發(fā)進度。系統(tǒng)結(jié)構(gòu)簡單,易于實現(xiàn)。代碼量較小,資源占用較少。在國產(chǎn)著名自由軟件MiniGUI下已成功實現(xiàn)。

4結(jié)語本文的創(chuàng)新點是基于現(xiàn)有的嵌入式GUI,利用系統(tǒng)的HTEP函數(shù)庫實現(xiàn)網(wǎng)絡(luò)訪問,根據(jù)文檔類型定義和層疊式樣式表規(guī)范,解析HTML文件和排版顯示。設(shè)計與實現(xiàn)了基于LINUX系統(tǒng)的嵌入式瀏覽器的基本功能,滿足一般嵌入式環(huán)境的需要。其次,本系統(tǒng)簡單,易于實現(xiàn),代碼較小,資源占有較少。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉