
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式瀏覽器konqueror的移植和漢化目前,掃瞄器已經(jīng)逐漸成為高端手機(jī)和pda的標(biāo)準(zhǔn)配置。konqueror/embeded作為嵌入式操作系統(tǒng)的首選掃瞄器得到了廣泛用法。但是因?yàn)樵搾呙槠魇亲杂绍浖?,因此向詳?xì)嵌入式平臺(tái)移植時(shí)存在一定的難度。本文主要介紹了konqueror/embedded向-linux平臺(tái)上的囫圇移植和漢化過(guò)程,以便工程師參考和用法。konqueror/embedded的結(jié)構(gòu)konqueror/embedded是由底層網(wǎng)絡(luò)銜接,圖形化用戶界面和處理html繪制的引擎khtml構(gòu)成的。底層的通信協(xié)議實(shí)現(xiàn)是基于kio/slave機(jī)制來(lái)實(shí)現(xiàn)的;gui界面采納kparts組建技術(shù)
2、和qt的基本構(gòu)件;而作為konqueror/embedded的核心,khtml則運(yùn)用了文檔對(duì)象模型(dom)所提供的api接口,并在dom樹上掛接javascript引擎,css解析器以及渲染引擎。konqueror/embedded的層次結(jié)構(gòu)1所示。圖1 konqueror/embedded層次結(jié)構(gòu)kparts及qt構(gòu)件實(shí)現(xiàn)gui為了便利地實(shí)現(xiàn)將現(xiàn)有應(yīng)用作為一個(gè)控件插入到另外一個(gè)應(yīng)用中去,采納了part對(duì)象負(fù)責(zé)管理囫圇應(yīng)用和窗口。對(duì)于每個(gè)窗口又實(shí)行了類似 微軟 mfc 中的 doc-view 結(jié)構(gòu)。因此在將應(yīng)用嵌入到另外一個(gè)應(yīng)用中的時(shí)候,只需要獲得part中的接口和數(shù)據(jù)即可。對(duì)窗口的一切操作
3、的響應(yīng)由被嵌入應(yīng)用的 part 對(duì)象來(lái)完成,而類 doc-view 結(jié)構(gòu)只負(fù)責(zé)顯示和保存數(shù)據(jù)即可。因?yàn)閗onqueror/embedded是基于圖形庫(kù)qt/e,因此也遵循了signal、slot消息機(jī)制,konqueror/embedded作為qt/e的一個(gè)標(biāo)準(zhǔn)應(yīng)用程序舉行輸入/輸出及界面消息響應(yīng)。執(zhí)行dom 模塊dom 模塊對(duì)經(jīng)過(guò)解析的標(biāo)志舉行語(yǔ)法檢查,并把屬性看作節(jié)點(diǎn),根據(jù)標(biāo)志的語(yǔ)義包含關(guān)系以及先后挨次組織成dom樹。它給html 文檔定義了一個(gè)與平臺(tái)無(wú)關(guān)的程序接口,用法該接口可以控制文檔的內(nèi)容、接口和樣式。在執(zhí)行dom模塊的過(guò)程中,掃瞄器將全部從語(yǔ)法語(yǔ)義解析模塊中獲得的標(biāo)志和屬性,根據(jù)一
4、定的層次結(jié)構(gòu)組織成dom 樹。完成dom 樹的構(gòu)筑后,dom 模塊會(huì)同時(shí)把標(biāo)志和屬性以對(duì)象的形式傳給綁定模塊和腳本引擎模塊。執(zhí)行i/o模塊掃瞄器加載有關(guān)的i/o文件,對(duì)http等協(xié)議舉行解析。語(yǔ)法語(yǔ)義解析模塊的解析功能分為兩部分:對(duì)接收到的字節(jié)流舉行分詞,解析為關(guān)鍵字;調(diào)用解析器檢驗(yàn)關(guān)鍵字是否合法,若是合法的關(guān)鍵字,則根據(jù)規(guī)章插入到dom 樹中。html 的標(biāo)志和屬性統(tǒng)稱為html的關(guān)鍵字?;旧先縣tml 4. 0 規(guī)范的標(biāo)志都在此功能模塊中獲得支持。從i / o 模塊中接收字節(jié)流并舉行分詞,輸出標(biāo)志;再對(duì)標(biāo)志舉行推斷,假如是html 規(guī)范中合法的標(biāo)志,則把標(biāo)志看作一個(gè)節(jié)點(diǎn),并組織成語(yǔ)法樹
5、。對(duì)屬性標(biāo)志的解析首先在標(biāo)志處理類中執(zhí)行,假如解析不勝利,則交由基類的屬性解析器舉行解析。圖2 編譯配置konqueror/embedded的移植交錯(cuò)編譯工具的安裝在本文中,運(yùn)用的交錯(cuò)編譯工具是特地為arm處理器設(shè)計(jì)的arm-crosstoolchain。2.95.3版本的交錯(cuò)編譯工具只能解壓到/usr/local/arm/2.95.3名目下,否則在qt/e編譯時(shí)會(huì)出錯(cuò)。為了在任何名目下都能用法工具鏈,必需要對(duì)路徑舉行設(shè)置。用vi編輯器打開/etc/profile文件并添加下述路徑:path=/usr/local/arm/2.95.3/binpathqt/e的編譯qt是一個(gè)跨平臺(tái)的 c+ 圖形
6、用戶界面庫(kù),目前包括qt/x11(基于 framebuffer)和qt/e(qt embedded)。konqueror/embedded就是基于qt/e圖形用戶界面庫(kù)的,因此在編譯konqueror/embedded之前必需先編譯qt/e。編譯qt/x11就是為編譯qt/e提供uic(用戶接口編譯器),uic用來(lái)把.ui文件轉(zhuǎn)成.h和.cpp文件。將qt/x11編譯完畢而生成的uic拷貝到qt/e的bin名目下面。在編譯qt/e之前,先要將qtopia的一個(gè)配置文件拷貝到qt/e中,表示qt/e的配置是根據(jù)qtopia要求的,即:cp qtopia-free-1.7.0/src/qt/qco
7、nfig-qpe.h qt-embedded-2.3.7/src/tools/之后就可以設(shè)置環(huán)境變量,編譯qt/e了。編譯qt/e完成后,在qt/e的lib名目下會(huì)自動(dòng)生成libqte.so.2.3.7庫(kù)文件。圖3 文件的原路徑和目標(biāo)板路徑圖形界面qtopia的編譯qtopia 是基于qt/e的圖形界面應(yīng)用程序集,通過(guò)qtopia真正地將圖形界面呈現(xiàn)在用戶的眼前。而konqueror/embedded在普通狀況下是在qtopia環(huán)境下運(yùn)行的,所以要用到qtopia庫(kù)。也有少數(shù)狀況不會(huì)用到,即系統(tǒng)啟動(dòng)的時(shí)候只運(yùn)行konqueror/embedded。那么只要在編譯konqueror/embedd
8、ed的時(shí)候配置稍作修改即可,本文只介紹前者。在編譯qt/e的時(shí)候已經(jīng)將qtopia的配置傳遞給了qt/e,因此編譯qtopia時(shí)就十分簡(jiǎn)單了,如下所示:cd qtopia-free-1.7.0/src./configure -xplatform linux-arm-g+make這樣,在bin名目下會(huì)生成一組應(yīng)用程序集,在lib名目下產(chǎn)生了一系列的qtopia庫(kù),給konqueror/embedded的編譯做預(yù)備。konqueror/ embedded的編譯和安裝konqueror/ embedded的編譯在編譯konqueror/embedded之前,必需將qt/e和qtopia的路徑指定給編
9、譯器。這樣編譯器才干找到相應(yīng)的庫(kù),從而為konqueror/embedded提供相應(yīng)的庫(kù)文件。先設(shè)置一些須要的環(huán)境變量,然后再根據(jù)圖2配置和編譯konqueror/embedded。在編譯配置時(shí),這些配置選項(xiàng)都是有各自含義的。有些配置選項(xiàng)假如搞錯(cuò),編譯就無(wú)法通過(guò),甚至有時(shí)候連配置都不能完成。比如qt/e路徑指定不對(duì)就會(huì)在配置時(shí)出錯(cuò),這些都需要在實(shí)際的移植過(guò)程中才干體驗(yàn)到。konqueror/embedded的安裝在konqueror/embedded編譯完成之后,名目下會(huì)生成相應(yīng)的可執(zhí)行文件。因此konqueror/embedded的安裝主要是指將可執(zhí)行文件和一些其他的配置文件拷貝到嵌入式系統(tǒng)
10、的文件系統(tǒng)中去。普通來(lái)說(shuō),konqueror/embedded運(yùn)行需要5個(gè)文件,圖3描繪了這5個(gè)文件的本來(lái)所在路徑和安裝到目標(biāo)板的路徑,這些都要手動(dòng)去拷貝。在目標(biāo)板上運(yùn)行konqueror/embedded之前,必需指定幾個(gè)環(huán)境變量,否則konqueror/embedded會(huì)由于找不到庫(kù)文件而終止運(yùn)行。預(yù)先設(shè)置好環(huán)境變量,再運(yùn)行konqueror/embedded。至此,konqueror/embedded已經(jīng)安裝完畢。但是konqueror/embedded缺省狀況下是不支持中文網(wǎng)頁(yè)的,而且界面是英文的。某些狀況下為了滿足特定的需要,其漢化也是十分須要的。konqueror/embedded
11、的漢化konqueror/embedded的漢化可分為兩個(gè)部分: 一個(gè)是konqueror/embedded本身控制界面的漢化;另一個(gè)是konqueror/embedded對(duì)中文網(wǎng)站的拜訪支持。和其他基于qt的應(yīng)用程序一樣, konqueror/embedded中對(duì)全部用戶可見的文本用法tr()將文本標(biāo)識(shí)出來(lái),這樣利用qt 提供的翻譯工具將很簡(jiǎn)單把這些文本轉(zhuǎn)化成所需要的語(yǔ)言。同時(shí)qt 提供了兩個(gè)宏qt_ tr_noop ( ) 和qt_ translate_ noop ( ) ,可用它們標(biāo)示出文本,以便于被lupdate 工具提取。詳細(xì)操作步驟如下:在需要翻譯源碼的xxx. pro 中加入一項(xiàng)
12、: translations = xxx. t s;運(yùn)行l(wèi)update xxx. pro ,生成xxx. ts 文件;運(yùn)行l(wèi)release xxx. pro 將生成xxx. qm,并將其改名為xxx_en.qm;啟動(dòng)qt linguist 將xxx. ts 文件導(dǎo)入,將需要翻譯的內(nèi)容翻譯成中文;翻譯完成之后, 點(diǎn)擊file re2lease ,將文件保存為xxx_zh. qm;翻譯文件保存之后, 在程序源碼中需要構(gòu)建qt ranslator 實(shí)例,利用qt ranslator 將翻譯文件加載到圖形界面上。在konqueror/ embedded 中可以通過(guò)修改main. c 中的代碼來(lái)實(shí)現(xiàn)ui
13、 的漢化。因?yàn)閝t/e是可以支持unicode編碼的,因此konqueror/embedded也可以支持中文。但是在編譯qt/e的缺省配置中是不支持unicode的,因此要手動(dòng)修改qconfig-qpe.h文件的配置:注釋掉38行,define qt_no_codecs。修改完畢以后,重新開頭編譯qt/e以及qtopia和konuqueror/e,konqueror/embedded就能接受unicode編碼的漢字了。但是要在konqueror頁(yè)面上顯示,就必需要有相應(yīng)的字體。因此,對(duì)konqueror/embedded源代碼中/konq-embed/dropin/ kglobalsettings.cpp文件舉行修改,即將"helvetica"改為"unifont"后重新編
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 促進(jìn)家庭與幼兒園合作的策略計(jì)劃
- 財(cái)務(wù)風(fēng)險(xiǎn)識(shí)別與應(yīng)對(duì)策略計(jì)劃
- 《納米材料與技術(shù)》課程教學(xué)大綱
- 《復(fù)合材料(理論)》課程教學(xué)大綱
- 企業(yè)庫(kù)存管理的先進(jìn)技術(shù)與方法探討
- 提升美術(shù)教育質(zhì)量的策略計(jì)劃
- 光伏電站并網(wǎng)運(yùn)行技術(shù)及風(fēng)險(xiǎn)控制
- 兒童畫作中的故事性與想象力培養(yǎng)
- 企業(yè)信息化管理軟件的現(xiàn)狀與未來(lái)
- 2024年高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):排列組合與二項(xiàng)式定理(解析版)
- 產(chǎn)科醫(yī)療質(zhì)量持續(xù)改進(jìn)QCC品管圈PDCA案例合集
- 培訓(xùn)機(jī)構(gòu)與家長(zhǎng)協(xié)議書協(xié)議書
- 個(gè)人所得稅贍養(yǎng)老人約定分?jǐn)倕f(xié)議書(范本)正規(guī)范本(通用版)
- 重大事故隱患專項(xiàng)排查檢查表
- Horiba 流量計(jì)中文說(shuō)明書
- 基于PLC立體倉(cāng)庫(kù)畢業(yè)設(shè)計(jì)外文翻譯
- 鑒定前設(shè)施設(shè)備檢查記錄表樣本
- 物業(yè)公司審計(jì)報(bào)告
- (譯林版)六年級(jí)英語(yǔ)完形填空100篇(含答案和講解)
- 大數(shù)據(jù)分析教學(xué)大綱教案
- 呼吸康復(fù)呼吸肌訓(xùn)練課件
評(píng)論
0/150
提交評(píng)論