日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
嵌入式瀏覽器Konqueror/embedded的技術(shù)分析
嵌入式瀏覽器Konqueror/embedded的技術(shù)分析
 更新時(shí)間:2008-8-18 9:55:45  點(diǎn)擊數(shù):18
【字體: 字體顏色

摘要 分析嵌入式瀏覽器Konqueror/embedded實(shí)現(xiàn)的關(guān)鍵技術(shù);討論Kparts組件技術(shù)、I/O-Slave機(jī)制以及DOM技術(shù)在Konqueror/embedded中的運(yùn)用;結(jié)合Konqueror/embedded在以Motorola i.MX1為核心的嵌入式系統(tǒng)中移植和開發(fā)的問題,討論Konqueror/embedded的移植和漢化技術(shù)。

關(guān)鍵詞 Kparts I/O-Slave DOM 移植 漢化

1Konqueror/embedded概述
目前,嵌入式瀏覽器已經(jīng)逐漸成為高端手機(jī)和PDA的標(biāo)準(zhǔn)配置。已經(jīng)面市的大多數(shù)嵌入式瀏覽器是商業(yè)版本的,像opera和MS explorer等,而Konqueror/embedded是符合GNU條款的自由軟件。Konqueror/embedded是針對嵌入式Linux,由著名的桌面操作環(huán)境KDE下的瀏覽器Konqueror派生出來的。Konqueror/embedded將Konqueror中關(guān)于KHTML、SSL、javascript等內(nèi)容繼承了下來,同時(shí)簡化了Konqueror中很多類的定義,剔除了依賴于KDElib部分,以適應(yīng)在不同的嵌入式平臺(tái)上移植和運(yùn)行。兩者都是基于Qt的,因此Konqueror/embedded也可以運(yùn)行在Qt/X11環(huán)境下。Konqueror/embedded完整地支持HTML4和css1(部分支持css2)、javascript (ECMAScript 262)、cookies、SSL、IPv6;支持和管理兼容XBEL的書簽,并且能夠很好地支持中文網(wǎng)頁瀏覽;可以將Konqueror/embedded作為一個(gè)flashplayer、pppdialer或文件管理器使用。2Konqueror/embedded的構(gòu)成
Konqueror/embedded的層次結(jié)構(gòu)如圖1所示。
圖1Konqueror/embedded層次結(jié)構(gòu)Konqueror/embedded是由底層網(wǎng)路連接、圖形化用戶界面和處理HTML繪制的引擎——KHTML構(gòu)成的。


圖2I/OSlaves實(shí)現(xiàn)流程底層的通信協(xié)議實(shí)現(xiàn)是基于KIO/Slave機(jī)制來實(shí)現(xiàn)的;GUI界面采用了Kparts組件技術(shù)和Qt中的基本構(gòu)件;而作為Konqueror/embedded的核心——KHTML,則運(yùn)用了文檔對象模型(DOM)所提供的API接口,并在DOM樹上掛接javascript引擎、CSS解析器以及渲染引擎。
3Konqueror/embedded中的關(guān)鍵技術(shù)
3.1底層通信協(xié)議的實(shí)現(xiàn)——I/OSlave機(jī)制
在KDE中采用I/OSlaves系統(tǒng)來訪問各種數(shù)據(jù)。Konqueror/embedded沿用這種方式,通過I/OSlaves和進(jìn)程間管道通信機(jī)制實(shí)現(xiàn)完整的瀏覽器功能。在基于Qt/X11的Konqueror中,同樣采用I/OSlaves機(jī)制。簡單說來,I/OSlaves就是那些從網(wǎng)絡(luò)上獲取文件或目錄的進(jìn)程,它們依賴桌面通信協(xié)議DCOP(Desktop Communications Protocol)與其他進(jìn)程進(jìn)行通信;但是,DCOP的實(shí)現(xiàn)又依賴于X11 ICE(Inter Client Exchange)庫。在嵌入式平臺(tái)上移植體積龐大的X11 lib是不現(xiàn)實(shí)的。Konqueror/embedded采用了另外一種進(jìn)程間的通信機(jī)制:通過管道(pipe)實(shí)現(xiàn)主進(jìn)程和其他I/OSlaves子進(jìn)程之間的通信。
在KDE1.X之后,KDE的文件管理器和Konqueror等應(yīng)用程序具有網(wǎng)絡(luò)透明的特征,Konqueror/embedded也繼承了這個(gè)特性。Konqueror/embedded不管對本地文件還是遠(yuǎn)程文件都采用URL(統(tǒng)一資源定位符)進(jìn)行標(biāo)識。網(wǎng)絡(luò)透明性允許應(yīng)用程序的用戶使用與處理本地文件相同的方法來處理遠(yuǎn)程文件。在KDE的文件選擇器能夠通過諸如 FTP、SMB甚至 Webdav(在 KDE3中)等方式列出遠(yuǎn)程目錄。網(wǎng)絡(luò)透明性和I/OSlaves機(jī)制是靠KIO類來實(shí)現(xiàn)的。KIO類提供了幾乎所有的文件管理功能。其中,KIO∷NetAccess提供文件下載、上傳以及臨時(shí)文件的創(chuàng)建或刪除等簡單的同步訪問功能。這是一種阻塞調(diào)用方式。如果用Konqueror/embedded下載網(wǎng)絡(luò)上的數(shù)據(jù),在數(shù)據(jù)沒有完全加載之前,當(dāng)前進(jìn)程將會(huì)被阻塞。數(shù)據(jù)流完全加載之后,網(wǎng)頁才可以再次渲染或刷新。KIO∷Job提供較為復(fù)雜的異步功能,包括打開、創(chuàng)建、復(fù)制、刪除以及重命名等與文件或目錄相關(guān)的操作。Konqueror/embedded正是依靠KIO∷Job來實(shí)現(xiàn)網(wǎng)頁訪問這樣的異步工作的。一旦某個(gè)job被啟動(dòng)之后,它將運(yùn)行在后臺(tái),并且不會(huì)阻塞父進(jìn)程。Konqueror/embedded中各種協(xié)議,如HTTP、FTP等是由一些獨(dú)立的進(jìn)程來實(shí)現(xiàn)的。這些獨(dú)立的進(jìn)程被稱為Slaves。Slave是KIO∷lavebase的子類,KIO∷Slavebase中定義了一些虛函數(shù),不同的Slave必須重載這些接口。Slave以函數(shù)庫的形式存在于系統(tǒng)中,提供給相應(yīng)的job調(diào)用。Slaveinterface運(yùn)行在應(yīng)用端(job),Slavebase運(yùn)行在Slave端。一般情況下,創(chuàng)建的job會(huì)處在隊(duì)列中,當(dāng)事件循環(huán)處理到該job時(shí),KIO為隊(duì)列中的job分配適當(dāng)?shù)腟lave。Slave的管理和調(diào)度是由調(diào)度器scheduler來執(zhí)行的,scheduler將job隊(duì)列加入適當(dāng)?shù)膮f(xié)議(Slave)中。當(dāng)該job結(jié)束之后,Slave進(jìn)程不會(huì)立即停止,會(huì)在空閑區(qū)域中等待一定的時(shí)間。這種機(jī)制的優(yōu)點(diǎn)在于,如果有幾個(gè)job訪問的是同一個(gè)主機(jī),那么就不需要重新啟動(dòng)新的進(jìn)程,并且不需要再次進(jìn)行協(xié)議握手。在同一時(shí)間,面向同一種網(wǎng)絡(luò)協(xié)議,系統(tǒng)中最多只能啟動(dòng)3個(gè)Slave進(jìn)程。如果引用該協(xié)議的job超過這個(gè)數(shù)目,那么多余的job將被添加到隊(duì)列中,直到又有空閑的Slave進(jìn)程可用。圖2描述了Konqueror/embedded中關(guān)于底層協(xié)議(Slave)和任務(wù)(job)的實(shí)現(xiàn)過程。
32GUI系統(tǒng)的實(shí)現(xiàn)——Kparts
組件技術(shù)(1) Konqueror/embedded中的組件
雖然,Konqueror/embedded的UI界面是直接繼承QMainWindow的,但是,UI界面的功能和布局是由組件來實(shí)現(xiàn)的,QMainWindow只是這些組件的宿主。在Konqueror/embedded啟動(dòng)初始化過程中,首先加載一個(gè)特殊的組件——KHTMLPART。KHTMLPART負(fù)責(zé)其他組件(如Kflashpart、Kplaintextpart等)的加載和管理。采用Kparts組件編程技術(shù)能夠使得Konqueror/embedded的功能得到擴(kuò)展,而不需要重新修改底層代碼,同時(shí)增強(qiáng)了Konqueror/embedded的可定制性。 Konqueror/embedded將Web 瀏覽器、flsahpalyer、文本編輯器和簡單音頻播放器都作為Kparts組件嵌入到主窗口中。Kparts組件編程技術(shù)能夠通過將圖形組件嵌入應(yīng)用程序的窗口使需要同一功能的應(yīng)用程序共享一個(gè)組件。Kparts組件分只讀組件和讀寫組件。只讀組件ReadOnlyPart 類為實(shí)現(xiàn)任何類型的查看器提供了一個(gè)公共框架。如果提供了一個(gè)文件的 URL,那么所有這些查看器都可以顯示該文件,并阻止對該文件的任何修改。在Konqueror/embedded中,像Web 瀏覽器、flashpalyer、簡單音頻播放器都屬于只讀組件。另外一種讀寫組件ReadWritePart 類是 ReadOnlyPart 的擴(kuò)展,它添加了修改和保存文檔的可能性,像Konqueror/embedded中嵌入的文本編輯器,屬于讀寫組件。

[1] [2] [3]  下一頁
  • 上一篇: 基于RTOS的面向?qū)ο蟮木幊谭椒?/a>
  • 下一篇: 人工神經(jīng)網(wǎng)絡(luò)在ARM平臺(tái)上的應(yīng)用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1