Konquerorembedded向ARM-Linux平台._第1页
Konquerorembedded向ARM-Linux平台._第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Konqueror/embedded 向 ARM-Linux 平引言目前,嵌入式浏览器已经逐渐成为高端手机和PDA 的标准配置。Konqueror/embeded 作为嵌入式 Linux 操作系统的首选浏览器得到了广泛使 用。但是由于该浏览器是自由软件,因此向具体嵌入式平台移植时存在一定的 难度。本文主要介绍了 Konqueror/embedded 向 ARM-Linux 平台上的整个移植和 汉化过程,以便工程师参考和使用。Konqueror/embedded 的结构Kon queror/embedded 是由底层网络连接,图形化用户界面和处理HTM 绘制的引擎 KHTM 构成的。底引言目前,

2、嵌入式浏览器已经逐渐成为高端 手机和 PDA 的标准配置。Konqueror/embeded 作为嵌入式 Linux 操作系统的首选浏览器得到了广泛使用。但是由于该浏览器是自由软件,因此向具体嵌入式平台移植 时存在一定的难度。本文主要介绍了Konqueror/embedded 向 ARM-Linux 平台上的整个移植和汉化过程,以便工程师参考和使用。Konqueror/embedded 的结构Kon queror/embedded 是由底层网络连接,图形化用户界面和处理HTM 绘制的引擎 KHTMI 构成的。底层的通信协议实现是基于KlO/slave 机制来实现的;GUI界面采用 Kparts

3、 组建技术和 Qt 的基本构件;而作为 Konqueror/embedded 的核心,KHTML 则运用了文档对象模型(DOM 所提供的 API 接口,并在 DOM 树上挂接javascript 引擎,CSS 解析器以及渲染引擎。Konqueror/embedded 的层次结构 如图 1所示。图 1 Konqueror/embedded 层次结构Kparts 及 Qt 构件实现 GUI为了方便地实现将现有应用作为一个控件插入到另外一个应用中去,采用了 part 对象负责管理整个应用和窗口。对于每个窗口又采取了类似微软 MFC 中的 Doc-View 结构。因此在将应用嵌入到另外一个应用中的时候

4、,只需要获得part 中的接口和数据即可。对窗口的一切操作的响应由被嵌入应用的part 对象来完成,而类 Doc-View 结构只负责显示和保存数据即可。由于 Konqueror/embedded 是基于图形库 Qt/E,因此也遵循了 signal、slot 消 息机制,Konqueror/embedded 作为 Qt/E 的一个标准应用程序进行输入/输出及 界面消息响应。执行 DOM 模块DOM 模块对经过解析的标记进行语法检查,并把属性看作节点,按照标记的语 义包含关系以及先后顺序组织成 DOM 树。它给 HTML 文档定义了一个与平台无 关的程序接口,使用该接口可以控制文档的内容、接口和

5、样式。在执行 DOM 模块的过程中,浏览器将所有从语法语义解析模块中获得的标记和 属性,按照一定的层次结构组织成 DOMI 树。完成 DOM 树的构筑后,DOM 模块会 同时把标记和属性以对象的形式传给绑定模块和脚本引擎模块。执行 I/O 模块浏览器加载有关的 I/O 文件,对 HTTP 等协议进行解析。语法语义解析模块的解 析功能分为两部分:对接收到的字节流进行分词,解析为关键字;调用解析器 检验关键字是否合法,若是合法的关键字,则按照规则插入到DOM 树中。HTML 的标记和属性统称为 HTM 啲关键字。基本上所有 HTML 4. 0 规范的标记 都在此功能模块中获得支持。从 I / O

6、模块中接收字节流并进行分词,输出标 记;再对标记进行判断,如果是 HTML 规范中合法的标记,则把标记看作一个 节点,并组织成语法树。对属性标记的解析首先在标记处理类中执行,如果解 析不成功,则交由基类的属性解析器进行解析。编译配置Konqueror/embedded 的移植 交叉编译工具的安装在本文中,运用的交叉编译工具是专门为ARM 处理器设计的 ARM-CrossToolchain。2.95.3 版本的交叉编译工具只能解压到 /usr/local/arm/2.95.3目录下,否则在 Qt/E 编译时会出错。为了在任何目录下都能使用工具链,必须要对路径进行设置。用VI 编辑器打开/etc/

7、profile文件并添加下述路径:PATH=/usr/local/arm/2.95.3/bi nPATHQt/E 的编译Qt 是一个跨平台的 C+图形用户界面库,目前包括 Qt/X11(基于 Framebuffer) 和Qt/E(Qt Embedded)。Konqueror/embedded 就是基于 Qt/E 图形用户界面库 的,因此在编译 Konqueror/embedded 之前必须先编译 Qt/E。图 2编译 Qt/X11 就是为编译 Qt/E 提供 uic(用户接口编译器),uic 用来把.ui 文件 转成.h和.cpp 文件。将 Qt/X11 编译完毕而生成的 uic 拷贝到 Qt

8、/E 的 bin 目录下面。在编译 Qt/E 之 前,先要将 Qtopia 的一个配置文件拷贝到 Qt/E 中,表示 Qt/E 的配置是按照 Qtopia 要求的,即:cp Qtopia-free-1.7.0/src/Qt/qconfig-qpe.h Qt-embedded-2.3.7/src/tools/之后就可以设置环境变量,编译 Qt/E 了。编译 Qt/E 完成后,在 Qt/E 的 lib 目 录下会自动生成 libQte.so.237 库文件。图 3文件的原路径和目标板路径图形界面 Qtopia 的编译QtopiaQt/E 的图形界面应用程序集,通过 Qtopia 真正地将图形界面展

9、现在用户的眼前。而 Konqueror/embedded 在一般情况下是在 Qtopia 环境下运 行的,所以要用到 Qtopia 库。也有少数情况不会用到,即系统启动的时候只运 行Konqueror/embedded。那么只要在编译 Konqueror/embedded 的时候配置稍 作修改即可,本文只介绍前者。在编译 Qt/E 的时候已经将 Qtopia 的配置传递给了 Qt/E,因此编译 Qtopia 时 就非常容易了,如下所示:cd Qtopia-free-1.7.0/src./con figure-xplatform linu x-arm-g+make这样,在 bin 目录下会生成一

10、组应用程序集,在 lib 目录下产生了一系列的Qtopia 库,给 Konqueror/embedded 的编译做准备。Konqueror/ embedded 的编译和安装Konqueror/ embedded 的编译在编译 Konqueror/embedded 之前,必须将 Qt/E 和 Qtopia 的路径指定给编译 器。这样编译器才能找到相应的库,从而为Konqueror/embedded 提供相应的库文件。先设置一些必要的环境变量,然后再按照图 2 配置和编译Kon queror/embedded。在编译配置时,这些配置选项都是有各自含义的。有些 配置选项如果搞错,编译就无法通过,甚至

11、有时候连配置都不能完成。比如 Qt/E 路径指定不对就会在配置时出错,这些都需要在实际的移植过程中才能体 验到。Konqueror/embedded 的安装 在 Konqueror/embedded 编译完成之后,目录下会生成相应的可执行文件。因此 Konqueror/embedded 的安装主要是指将可执行文件和一些其他的配置文件拷贝 到嵌入式系统的文件系统中去。 一般来说,Konqueror/embedded运行需要 5 个 文件,图 3 描绘了这 5 个文件的原来所在路径和安装到目标板的路径,这些都 要手动去拷贝。在目标板上运行 Konqueror/embedded 之前,必须指定几个环

12、境变量,否则Konqueror/embedded 会因为找不到库文件而终止运行。预先设置好环境变量, 再运行 Konqueror/embedded。至此, Konqueror/embedded 已经安装完毕。但是 Konqueror/embedded 缺省情 况下是不支持中文网页的,而且界面是英文的。某些情况下为了满足特定的需 要,其汉化也是非常必要的。Konqueror/embedded 的汉化Konqueror/embedded 的汉化可分为两个部分:一个是 Konqueror/embedded 本 身控制界面的汉化 ; 另一个是 Konqueror/embedded 对中文网站的访问支持

13、。和 其他基于 Qt 的应用程序一样 , Konqueror/embedded 中对所有用户可见的文本 使用 tr () 将文本标识出来,这样利用 Qt 提供的翻译工具将很容易把这些文本 转化成所需要的语言。同时 Qt 提供了两个宏 QT_ TR_NOOP ( ) 和 QT_ TRANSLATE_ NOOP ( ),可用 它们标示出文本 , 以便于被 lupdate 工具提取。具体操作步骤如下:在需要翻译 源码的 XXX. pro 中加入一项:TRANSLATIONS = XXX. t s ;运行 lupdate XXX. pro ,生成XXX. ts 文件; 运行Irelease XXX.

14、pro 将生成XXX. Qm 并将其 改名为XXX_en.qm启动 Qt Linguist将 XXX. ts 文件导入,将需要翻译的内容翻译成中文;翻译完成之后,点击 File -Re2lease ,将文件保存为 XXX_zh. Qm 翻译文件保存之后,在程序源码中需要构建 Qt ranslator实例,利用 Qtranslator 将翻译文件加载到图形界面上。在 Konqueror/ embedded 中可以通过修改 main. c 中的代码来实现 UI 的汉 化。由于 Qt/E 是可以支持 Unicode 编码的,因此 Konqueror/embedded 也可以 支持中文。但是在编译 Qt/E 的缺省配置中是不支持 Unicode 的,因此要手动修 改 qconfig-qpe.h文件的配置:注释掉 38 行,#define Qt_NO_CODECS修改完毕以后,重新开始编译 Qt/E 以及 Qtopia 和 Konuqueror/E ,Konqueror/embedded 就能接受 Unicode 编码的汉字了。但是要在 Konqueror 页 面上显示,就必须要有相应的字体。因此,对 Konqueror/embedded 源代码中/konq-embed/dropin/ kglobalsettings.cpp 文件进行修改,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论