微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 源代码开放浏览器设计与实现

源代码开放浏览器设计与实现

时间:07-06 来源:互联网 点击:

口部件使用的QT窗口部件集合。如果我们可以对最初的设计目标做一些妥协,那么QT窗口部件将由于好几种理由而成为这一方案的一个合乎逻辑的选择。其中之一是,尚没有Microwindows版本的QT采用了一种独特的编码风格,它允许用运行在另一工具套件上的改进版类方便地置换原有的类,这一工具套件具有Microwindows和X版本。

这一事实降低了QT API的总体大小,因为我们不再需要所有的类。你可得到一个免费的QT版本作为编码参考。

我们最终选择的是可同时在Microwindows和X上运行的唯一窗口部件集合FLTK,这一工具套件也采用C++编写。选择它的另外一个好处是这一工具套件在对QT API和后端FLTK进行集成时相对较简单。

在选择了核心显示引擎之后,我们创建了一个分层软件体系结构,这一结构严格地定义了每一个浏览器模块以及每一模块应该完成的功能。我们也必须定义一些新模块,一旦开发出更小的模块,或因采用图形化视窗系统而需要对某些模块进行更改,就可以置换旧模块。我们集成的模块包括:浏览器应用层、万维网的WWWLib库、KHTML View和窗口部件模块、QT兼容层、IMLIB 图形库和FLTK应用框架。

ViewML浏览器应用层很小,并完全用C++ FLTK应用框架编写,它提供了基本的图形用户界面布局。我们尽量将这一层做得很小,以便应用工程师能够很容易地为某个特定嵌入式应用环境修改ViewML浏览器,而无需深入了解整个浏览器。在一些嵌入式应用环境中,可能根本没有用户界面,只显示一个全屏幕的浏览器页面。这一层也可以处理网络和本地文件存取需求。

我们选用了万维网协会的WWWLib库来执行所有的异步网络输入/输出和HTTP获得(HTTP get)功能,因为它比较容易使用。我们发现WWWLib库基本上要比实际所需要的大,因此它可能将被改写。不过,就目前而言,它使我们不必在这一专门领域花费太多精力就可迅速获取初始版浏览器的功能。

KHTML View和窗口部件模块由原始的未经修改的KDE 1.0 HTML窗口部件代码构成,这一未经修改的源代码被上层的用户界面应用层调用,仍认为是在和下层的QT应用框架通信。KHTML窗口部件处理所有的HTML语法分析、作图和基本的布局操作,它并不直接处理屏幕滚动或显示框架的操作,而是把这些任务授权给KHTML View去做。

QT兼容性层提供未经修改的HTML窗口部件和FLTK应用框架(而不是QT框架)之间的接口。C++ QT类在这一层被改写,以保持相同的公共接口,这些类包括图形窗口部件(编辑控制、按钮等)、类集及字符串类,用于窗口部件内部通信的非标准QT信号机制不得不从零开始进行编码。所有的类集和字符串类在标准C++库中实现,这些库包括:堆栈、列表、字典(哈希表)和常见字符串类,除了QT在其类集合中使用的新型自动删除机制以外,这些类完全是标准的。

对图象而言,Gnome项目中的IMLIB曾用于X视窗系统,IMLIB库允许实现QT类型图象的显示功能,包括自动检测图象类型、自动缩放图象、以及将图象显示在屏幕上。尽管IMLIB库也有一些不足之处,例如大小,但最主要的缺点是它不适用于Microwindows。因此,对于该环境,我们直接将图形图象支持功能增加到Microwindows中,这样就较好地解决了这一问题,同时使该模块仍保持较小的尺寸,并且允许增加新的图像解码器。

根据视窗系统的不同,可以采用两个不同版本的FLTK应用框架。标准版本的FLTK包括对Win32和X的支持。我们和Microwindows项目开发人员一起将FLTK移植到Microwindows已有的Nano-X API中,这一技术支持允许与Microwindows服务器进行客户-服务器交互,就如同采用Xlib模型一样。由于FLTK和Microwindows都能支持X Window系统,因此它是一个很不错的选择。

ViewML项目已经在短时间内开发出了一种高品质的网络浏览器,它直接针对嵌入式Linux环境。通过包含源代码开放的核心部件,我们已经能够在不占用多少RAM和ROM资源的情况下使用一个高品质的显示引擎。

Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核孝效率高,内核的更新速度很快,linux是可以定制的,其系统内核最小只有约134KB。第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top