嵌入式瀏覽器Konqueror/E的實現(xiàn)
發(fā)布時間:2007/8/28 0:00:00 訪問次數(shù):793
來源:電子產(chǎn)品世界 作者:陸云昆 余健 趙力 鄒采榮
摘 要: Konqueror/embedded是針對嵌入式Linux的開放源碼瀏覽器,也是符合GNU條款的自由軟件。本文首先對該瀏覽器技術核心做了簡要分析,然后詳細介紹了Konqueror/embedded在ARM-Linux操作系統(tǒng)上的移植和漢化過程。
關鍵詞: Konqueror嵌入式瀏覽器ARM-Linux移植漢化
1 Konqueror/E概述
隨著網(wǎng)絡科技的進步,因特網(wǎng)與無線網(wǎng)絡的融合將成為必然趨勢。要在嵌入式設備上訪問因特網(wǎng),瀏覽器是必不可少的。目前,嵌入式瀏覽器已經(jīng)逐漸成為高端手機和PDA的標準配置。嵌入式瀏覽器的另一大作用就是在網(wǎng)頁中利用CGI(CommonGateway Interface:公用網(wǎng)關接口)來調用其他可執(zhí)行程序。這樣控制頁面可以做的很美觀,而且可擴展性好。
現(xiàn)在已經(jīng)面市的嵌入式瀏覽器大多市商業(yè)版本的,如Opera、MS Explorer等。而Konqueror/embedded是符合GNU條款的自由軟件。Konqueror/embedded是針對嵌入式Linux,由著名的桌面操作環(huán)境KDE下的瀏覽器Konqueror派生出來的。Konqueror/embedded將Konqueror中關于KHTML,SSL(Security Socket Layer:安全套接層),Javascript等內容繼承下來,同時簡化了Konqueror中很多類的定義,剔除了原來KDElib部分,以適應在不同的嵌入式平臺下能構成功移植和運行。Konqueror/embedded完整地支持HTML4(Hypertext Markup Language:超文本鏈接標示語言)和CSSL(Cascading Style Sheets:層疊樣式表單)部分支持CSS2、JavaScript(ECMAScript 262)、cookies、SSL、IPv6;支持和管理兼容的XBEL的書簽,并且能夠很好地支持中文網(wǎng)頁瀏覽。而且還可以將Konqueror/embedded作為一個flashpalyer、pppdialer或文件管理器來使用。
圖1 Konqueror/E運行界面
圖1為Konqueror/embedded在Embedded-Linux平臺上運行界面。
Konqueror/embedded作為嵌入式Linux操作系統(tǒng)的首選瀏覽器,被廣泛的使用。但是由于該瀏覽器是自由軟件,因此向具體嵌入式平臺移植時存在一定的難度。本文第三部分詳細的介紹了Konqueror/embedded向ARM-Linux平臺上的整個移植和漢化過程,以便開發(fā)者參考和使用。
2 Konqueror/E的結構
Konqueror/embedded是由底層網(wǎng)絡連接,圖形化用戶界面和處理HTML繪制的引擎-KHTML構成的。底層的通信協(xié)議實現(xiàn)是基于KIO/slave機制來實現(xiàn)的;GUI界面采用可Kparts組建技術和Qt的基本構件;而作為Konqueror/embedded的核心-KHTML則運用了文檔對象模型(DOM)所提供的API接口,并在DOM樹上掛接javascript引擎,CSS解析器以及渲染引擎。
Konqueror/embedded的層次結構如圖2所示。
圖2 Konqueror/embedded的層次結構
(1)Kparts及QT構件實現(xiàn)GUI
在KDE中,部件被稱為part,這和MS中的OLE組件是一個概念。一個part通常包含三個部分:一個窗口、功能、以及使用該功能的用戶接口。應用在瀏覽器項目中,part 包含了多個窗口(一個頁面對應于一個 part,而一個頁面有可能包含多個窗口)、part 提供的功能包括:頁內、頁間的跳轉、重定向、窗口的創(chuàng)建和刪除、用戶的輸入處理、剪切、粘貼等,同時為使用這些功能提供了菜單、工具條、狀態(tài)條等用戶接口。其他的應用程序可以使用該 part 把瀏覽器窗口嵌入自己的應用中。
為了方便地實現(xiàn)將現(xiàn)有應用作為一個控件插入到另外一個應用中去,采用了 part 對象負責管理整個應用和窗口。對于每個窗口又采取了類似 Microsoft MFC 中的 Doc-View 結構。因此在將應用嵌入到另外一個應用中的時候,只需要獲得 part 中的接口和數(shù)據(jù)即可。對窗口的一切操作的響應由被嵌入應用的 part 對象來完成,而類 Doc-View 結構只簡單的負責顯示和保存顯示數(shù)據(jù)就可以了。
Kpart 定義了一系列簡單的類:part、plugin、mainwindow、part manager。其中:
a) Part:是 KDE 中的部件。為了定義一個Part,你需要提供widget,當然還有提供訪問Part功能的Actions,還要有一個XML文件來描述在UI中Actions的布局。
b) Plugin:它是一小段功能程序,不通過嵌入一個Widget來實現(xiàn)。但是定義了應用程序用戶接口對應的動作。它可以是圖形的,比如彈出的對話框、拼寫檢查等。
c) Mainwindow:它是一個特殊的KTMainWindow,它的具有Action定義的UI是由XML文件來描述的,這樣它可以通過彌合XML文件來嵌入Part對象。
d) Part manager:它是一個抽象的類,用來處理激活還是禁止 part。它只有在一個 mainwindow 中包含多個 part 的時候才有用。
由于Konqueror/embedded是基于圖形庫QT/E
來源:電子產(chǎn)品世界 作者:陸云昆 余健 趙力 鄒采榮
摘 要: Konqueror/embedded是針對嵌入式Linux的開放源碼瀏覽器,也是符合GNU條款的自由軟件。本文首先對該瀏覽器技術核心做了簡要分析,然后詳細介紹了Konqueror/embedded在ARM-Linux操作系統(tǒng)上的移植和漢化過程。
關鍵詞: Konqueror嵌入式瀏覽器ARM-Linux移植漢化
1 Konqueror/E概述
隨著網(wǎng)絡科技的進步,因特網(wǎng)與無線網(wǎng)絡的融合將成為必然趨勢。要在嵌入式設備上訪問因特網(wǎng),瀏覽器是必不可少的。目前,嵌入式瀏覽器已經(jīng)逐漸成為高端手機和PDA的標準配置。嵌入式瀏覽器的另一大作用就是在網(wǎng)頁中利用CGI(CommonGateway Interface:公用網(wǎng)關接口)來調用其他可執(zhí)行程序。這樣控制頁面可以做的很美觀,而且可擴展性好。
現(xiàn)在已經(jīng)面市的嵌入式瀏覽器大多市商業(yè)版本的,如Opera、MS Explorer等。而Konqueror/embedded是符合GNU條款的自由軟件。Konqueror/embedded是針對嵌入式Linux,由著名的桌面操作環(huán)境KDE下的瀏覽器Konqueror派生出來的。Konqueror/embedded將Konqueror中關于KHTML,SSL(Security Socket Layer:安全套接層),Javascript等內容繼承下來,同時簡化了Konqueror中很多類的定義,剔除了原來KDElib部分,以適應在不同的嵌入式平臺下能構成功移植和運行。Konqueror/embedded完整地支持HTML4(Hypertext Markup Language:超文本鏈接標示語言)和CSSL(Cascading Style Sheets:層疊樣式表單)部分支持CSS2、JavaScript(ECMAScript 262)、cookies、SSL、IPv6;支持和管理兼容的XBEL的書簽,并且能夠很好地支持中文網(wǎng)頁瀏覽。而且還可以將Konqueror/embedded作為一個flashpalyer、pppdialer或文件管理器來使用。
圖1 Konqueror/E運行界面
圖1為Konqueror/embedded在Embedded-Linux平臺上運行界面。
Konqueror/embedded作為嵌入式Linux操作系統(tǒng)的首選瀏覽器,被廣泛的使用。但是由于該瀏覽器是自由軟件,因此向具體嵌入式平臺移植時存在一定的難度。本文第三部分詳細的介紹了Konqueror/embedded向ARM-Linux平臺上的整個移植和漢化過程,以便開發(fā)者參考和使用。
2 Konqueror/E的結構
Konqueror/embedded是由底層網(wǎng)絡連接,圖形化用戶界面和處理HTML繪制的引擎-KHTML構成的。底層的通信協(xié)議實現(xiàn)是基于KIO/slave機制來實現(xiàn)的;GUI界面采用可Kparts組建技術和Qt的基本構件;而作為Konqueror/embedded的核心-KHTML則運用了文檔對象模型(DOM)所提供的API接口,并在DOM樹上掛接javascript引擎,CSS解析器以及渲染引擎。
Konqueror/embedded的層次結構如圖2所示。
圖2 Konqueror/embedded的層次結構
(1)Kparts及QT構件實現(xiàn)GUI
在KDE中,部件被稱為part,這和MS中的OLE組件是一個概念。一個part通常包含三個部分:一個窗口、功能、以及使用該功能的用戶接口。應用在瀏覽器項目中,part 包含了多個窗口(一個頁面對應于一個 part,而一個頁面有可能包含多個窗口)、part 提供的功能包括:頁內、頁間的跳轉、重定向、窗口的創(chuàng)建和刪除、用戶的輸入處理、剪切、粘貼等,同時為使用這些功能提供了菜單、工具條、狀態(tài)條等用戶接口。其他的應用程序可以使用該 part 把瀏覽器窗口嵌入自己的應用中。
為了方便地實現(xiàn)將現(xiàn)有應用作為一個控件插入到另外一個應用中去,采用了 part 對象負責管理整個應用和窗口。對于每個窗口又采取了類似 Microsoft MFC 中的 Doc-View 結構。因此在將應用嵌入到另外一個應用中的時候,只需要獲得 part 中的接口和數(shù)據(jù)即可。對窗口的一切操作的響應由被嵌入應用的 part 對象來完成,而類 Doc-View 結構只簡單的負責顯示和保存顯示數(shù)據(jù)就可以了。
Kpart 定義了一系列簡單的類:part、plugin、mainwindow、part manager。其中:
a) Part:是 KDE 中的部件。為了定義一個Part,你需要提供widget,當然還有提供訪問Part功能的Actions,還要有一個XML文件來描述在UI中Actions的布局。
b) Plugin:它是一小段功能程序,不通過嵌入一個Widget來實現(xiàn)。但是定義了應用程序用戶接口對應的動作。它可以是圖形的,比如彈出的對話框、拼寫檢查等。
c) Mainwindow:它是一個特殊的KTMainWindow,它的具有Action定義的UI是由XML文件來描述的,這樣它可以通過彌合XML文件來嵌入Part對象。
d) Part manager:它是一個抽象的類,用來處理激活還是禁止 part。它只有在一個 mainwindow 中包含多個 part 的時候才有用。
由于Konqueror/embedded是基于圖形庫QT/E