-- 作者:wangxinxin
-- 发布时间:2010-11-29 9:40:35
-- VxWorks体系下PowerPC860处理器串行总线
摘 要: Konqueror/embedded是针对嵌入式Linux的开放源码浏览器,也是符合GNU条款的自由软件。本文首先对该浏览器技术核心做了简要分析,然后详细介绍了Konqueror/embedded在arm-Linux操作系统上的移植和汉化过程。 关键词: Konqueror;嵌入式浏览器;arm-Linux;移植;汉化
引言 目前,嵌入式浏览器已经逐渐成为高端手机和PDA的标准配置。Konqueror/embedded作为嵌入式Linux操作系统的首选浏览器得到了广泛使用。但是由于该浏览器是自由软件,因此向具体嵌入式平台移植时存在一定的难度。本文主要介绍了Konqueror/embedded 向arm-Linux平台上的整个移植和汉化过程,以便工程师参考和使用。
Konqueror/embedded的结构 Konqueror/embedded 是由底层网络连接,图形化用户界面和处理HTML绘制的引擎KHTML构成的。底层的通信协议实现是基于KIO/slave机制来实现的;GUI界面采用 Kparts组建技术和Qt的基本构件;而作为Konqueror/embedded的核心,KHTML则运用了文档对象模型(DOM)所提供的API接口,并在DOM树上挂接javascript引擎,CSS解析器以及渲染引擎。Konqueror/embedded的层次结构如图1所示。
图1 Konqueror/embedded层次结构
Kparts及Qt构件实现GUI 为了方便地实现将现有应用作为一个控件插入到另外一个应用中去,采用了part对象负责管理整个应用和窗口。对于每个窗口又采取了类似 微软 MFC 中的 Doc-View 结构。因此在将应用嵌入到另外一个应用中的时候,只需要获得part中的接口和数据即可。对窗口的一切操作的响应由被嵌入应用的 part 对象来完成,而类 Doc-View 结构只负责显示和保存数据即可。
由于Konqueror/embedded是基于图形库Qt/E,因此也遵循了signal、slot消息机制,Konqueror/embedded作为Qt/E的一个标准应用程序进行输入/输出及界面消息响应。
执行DOM 模块 DOM 模块对经过解析的标记进行语法检查,并把属性看作节点,按照标记的语义包含关系以及先后顺序组织成DOM树。它给HTML 文档定义了一个与平台无关的程序接口,使用该接口可以控制文档的内容、接口和样式。
在执行DOM模块的过程中,浏览器将所有从语法语义解析模块中获得的标记和属性,按照一定的层次结构组织成DOM 树。完成DOM 树的构筑后,DOM 模块会同时把标记和属性以对象的形式传给绑定模块和脚本引擎模块。
执行I/O模块 浏览器加载有关的I/O文件,对HTTP等协议进行解析。语法语义解析模块的解析功能分为两部分:对接收到的字节流进行分词,解析为关键字;调用解析器检验关键字是否合法,若是合法的关键字,则按照规则插入到DOM 树中。
|