<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è) > 嵌入式系統 > 設計應用 > 源代碼開(kāi)放瀏覽器設計與實(shí)現

源代碼開(kāi)放瀏覽器設計與實(shí)現

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

  易置換的類(lèi)集

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

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

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

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

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

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

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

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

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

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

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

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

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


上一頁(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>