色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 源代碼開放瀏覽器設(shè)計與實現(xiàn)

          源代碼開放瀏覽器設(shè)計與實現(xiàn)

          作者: 時間:2011-07-06 來源:網(wǎng)絡(luò) 收藏

            易置換的類集

            到目前為止,在考慮使用那一種窗口部件時,爭論最多的是KDE 1.0窗口部件使用的QT窗口部件集合。如果我們可以對最初的目標(biāo)做一些妥協(xié),那么QT窗口部件將由于好幾種理由而成為這一方案的一個合乎邏輯的選擇。其中之一是,尚沒有Microwindows版本的QT采用了一種獨(dú)特的編碼風(fēng)格,它允許用運(yùn)行在另一工具套件上的改進(jìn)版類方便地置換原有的類,這一工具套件具有Microwindows和X版本。

            這一事實降低了QT API的總體大小,因為我們不再需要所有的類。你可得到一個免費(fèi)的QT版本作為編碼參考。

            我們最終選擇的是可同時在Microwindows和X上運(yùn)行的唯一窗口部件集合FLTK,這一工具套件也采用C++編寫。選擇它的另外一個好處是這一工具套件在對QT API和后端FLTK進(jìn)行集成時相對較簡單。

            在選擇了核心顯示引擎之后,我們創(chuàng)建了一個分層軟件體系結(jié)構(gòu),這一結(jié)構(gòu)嚴(yán)格地定義了每一個模塊以及每一模塊應(yīng)該完成的功能。我們也必須定義一些新模塊,一旦開發(fā)出更小的模塊,或因采用圖形化視窗系統(tǒng)而需要對某些模塊進(jìn)行更改,就可以置換舊模塊。我們集成的模塊包括:應(yīng)用層、萬維網(wǎng)的WWWLib庫、KHTML View和窗口部件模塊、QT兼容層、IMLIB 圖形庫和FLTK應(yīng)用框架。

            ViewML應(yīng)用層很小,并完全用C++ FLTK應(yīng)用框架編寫,它提供了基本的圖形用戶界面布局。我們盡量將這一層做得很小,以便應(yīng)用工程師能夠很容易地為某個特定嵌入式應(yīng)用環(huán)境修改ViewML瀏覽器,而無需深入了解整個瀏覽器。在一些嵌入式應(yīng)用環(huán)境中,可能根本沒有用戶界面,只顯示一個全屏幕的瀏覽器頁面。這一層也可以處理網(wǎng)絡(luò)和本地文件存取需求。

            我們選用了萬維網(wǎng)協(xié)會的WWWLib庫來執(zhí)行所有的異步網(wǎng)絡(luò)輸入/輸出和HTTP獲得(HTTP get)功能,因為它比較容易使用。我們發(fā)現(xiàn)WWWLib庫基本上要比實際所需要的大,因此它可能將被改寫。不過,就目前而言,它使我們不必在這一專門領(lǐng)域花費(fèi)太多精力就可迅速獲取初始版瀏覽器的功能。

            KHTML View和窗口部件模塊由原始的未經(jīng)修改的KDE 1.0 HTML窗口部件代碼構(gòu)成,這一未經(jīng)修改的被上層的用戶界面應(yīng)用層調(diào)用,仍認(rèn)為是在和下層的QT應(yīng)用框架通信。KHTML窗口部件處理所有的HTML語法分析、作圖和基本的布局操作,它并不直接處理屏幕滾動或顯示框架的操作,而是把這些任務(wù)授權(quán)給KHTML View去做。

            QT兼容性層提供未經(jīng)修改的HTML窗口部件和FLTK應(yīng)用框架(而不是QT框架)之間的接口。C++ QT類在這一層被改寫,以保持相同的公共接口,這些類包括圖形窗口部件(編輯控制、按鈕等)、類集及字符串類,用于窗口部件內(nèi)部通信的非標(biāo)準(zhǔn)QT信號機(jī)制不得不從零開始進(jìn)行編碼。所有的類集和字符串類在標(biāo)準(zhǔn)C++庫中,這些庫包括:堆棧、列表、字典(哈希表)和常見字符串類,除了QT在其類集合中使用的新型自動刪除機(jī)制以外,這些類完全是標(biāo)準(zhǔn)的。

            對圖象而言,Gnome項目中的IMLIB曾用于X視窗系統(tǒng),IMLIB庫允許QT類型圖象的顯示功能,包括自動檢測圖象類型、自動縮放圖象、以及將圖象顯示在屏幕上。盡管IMLIB庫也有一些不足之處,例如大小,但最主要的缺點是它不適用于Microwindows。因此,對于該環(huán)境,我們直接將圖形圖象支持功能增加到Microwindows中,這樣就較好地解決了這一問題,同時使該模塊仍保持較小的尺寸,并且允許增加新的圖像解碼器。

            根據(jù)視窗系統(tǒng)的不同,可以采用兩個不同版本的FLTK應(yīng)用框架。標(biāo)準(zhǔn)版本的FLTK包括對Win32和X的支持。我們和Microwindows項目開發(fā)人員一起將FLTK移植到Microwindows已有的Nano-X API中,這一技術(shù)支持允許與Microwindows服務(wù)器進(jìn)行客戶-服務(wù)器交互,就如同采用Xlib模型一樣。由于FLTK和Microwindows都能支持X Window系統(tǒng),因此它是一個很不錯的選擇。

            ViewML項目已經(jīng)在短時間內(nèi)開發(fā)出了一種高品質(zhì)的網(wǎng)絡(luò)瀏覽器,它直接針對嵌入式Linux環(huán)境。通過包含的核心部件,我們已經(jīng)能夠在不占用多少RAM和ROM資源的情況下使用一個高品質(zhì)的顯示引擎。

            Linux做嵌入式的優(yōu)勢,首先,Linux是的,不存在黑箱技術(shù),遍布全球的眾多Linux愛好者又是Linux開發(fā)者的強(qiáng)大技術(shù)支持;其次,Linux的內(nèi)核小、效率高,內(nèi)核的更新速度很快,linux是可以定制的,其系統(tǒng)內(nèi)核最小只有約134KB。第三,Linux是免費(fèi)的OS,在價格上極具競爭力。 Linux還有著嵌入式操作系統(tǒng)所需要的很多特色,突出的就是Linux適應(yīng)于多種CPU和多種硬件平臺,是一個跨平臺的系統(tǒng)。到目前為止,它可以支持二三十種CPU。而且性能穩(wěn)定,裁剪性很好,開發(fā)和使用都很容易。很多CPU包括家電業(yè)芯片,都開始做Linux的平臺移植工作。移植的速度遠(yuǎn)遠(yuǎn)超過Java的開發(fā)環(huán)境。也就是說,如果今天用Linux環(huán)境開發(fā)產(chǎn)品,那么將來換CPU就不會遇到困擾。同時,Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,Linux對網(wǎng)絡(luò)中最常用的TCP/IP協(xié)議有最完備的支持。提供了包括十兆、百兆、千兆的以太網(wǎng)絡(luò),以及無線網(wǎng)絡(luò),Toker ring(令牌環(huán)網(wǎng))、光纖甚至衛(wèi)星的支持。所以Linux很適于做信息家電的開發(fā)。

            ViewML瀏覽器的運(yùn)行大概需要2M字節(jié)的RAM,代碼文件的大小大約是800k。在Microwindows系統(tǒng)環(huán)境下運(yùn)行時,對RAM的需求不超過2.5M字節(jié),這使它可用在大多數(shù)帶圖象顯示功能的32位嵌入式Linux系統(tǒng)上。由于整個ViewML項目的源代碼是的,因此其他開發(fā)者可以迅速理解ViewML并進(jìn)一步將它加以完善。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉