在嵌入式系统应用日益发展的今天,越来越多的应用都需要使用到 GUI 来进行研发,以此来获得更好的交互性。
嵌入式 Linux 下 GUI 的选择,对大多数研发人员来说是个需要权衡对比的过程。选择 GTK 运行在 X 系统上,然后 X 系统运行在嵌入系统的 framebuffer 上,这会是个很好的选择。
GTK 和 X 的长处
当然,GTK 和 X 一般都是被大家考虑为体积较大的桌面系统的好搭配,但实际上对于嵌入系统来说,他也有着诸多的长处:
1、 X-window 系统和 GTK 都很稳定可靠,X-window 系统是经历了长期的研发及应用实践的,GTK 也是个比较成熟的开放源代码项目;
2、 X-window 系统是个灵活的 client/server 的模型结构,一个应用客户端的崩溃不会影响到图像系统的其他部分,这是个很重要的特性,他有利于支持第三方应用的扩展研发,而不影响到主体部分;
3、 GTK 有两个重要的库:GDK和GLIB。GDK抽象了底层的窗口管理,要移植 GTK 到另一个不同的窗口系统的话,我们只需要移植 GDK 就能够了。GLIB 是个工具集合,他包括了数据类型,各种宏定义,类型转化,字符串处理,任何应用程式都能够链接这个 GLIB 库,使用其中的各种数据类型、方法,来避免重复代码,或说避免研发人员重新发明轮子,这样有利于减少整个系统的尺寸;
4、 对 GTK /X 的裁剪是很容易的,他们有着很好的可配置的选项,有着清楚的代码结构,能够确保安全正确地去掉大段的无需的代码;
5、 GTK 有着大量的应用,GTK 已被用在了很多重要的应用系统中;
6、 GTK 的授权是 LGPL 方式的,X 是 non-copyleft free license 的,第三方研发的系统都能和他们进行链接;
7、 GTK /X 二者都是基于 C 代码的,而不是C ;
8、 GTK 使用 C 来实现了面向对象的架构;
其他 GUI 系统
其他能够选择的图像系统包括:Qt/Embedded,FLTK 和 Microwindows。
1、 Qt/E 是其中较高级的,他是个完整的,基于 framebuffer 的 GUI 系统,由 Trolltech 公司研发;
2、 Qt/E 有着高效的图像渲染效果,还包括 TrueType 字体系统,及 alpha blending 半透明处理;
3、 但 Qt/E 不是使用 LGPL 授权方式,而是使用两种授权方式:研发使用 GPL,而商用需要授权和版税;
4、 Qt/E 是用 C 编写的;
5、 Qt/E 很大,一个 iPAQ QPE 就包括了 3.3MB 的 Qt/E 库和一个 718KB 的 QPE 库(和 Xlib 类似的一种库);
6、 Qt/E 不够稳定,QPE demo 不错,但出现过崩溃;
7、 FLTK (the Fast Light Toolkit) 是个小型的 GUI 图像系统,他也是用 C 写的,特性太少,应用范围较少,不够成熟;
8、 Microwindows 和 X-Window 相比也是个不错的选择,他占用大约 100KB-600KB 大小的内存,和文档存储空间,虽然已有了一个其上的 GTK 移植,但还是不够成熟;
X-window:比您想象的要小很多
对于X-window系统,广大的网络研发者已做了大量的工作来减小其的尺寸,最知名的有TinyX。能够通过对无需的代码的裁剪及去除XLIB中静态数据来减少总体的尺寸,如:color管理系统,弧形,粗线条等。
在大多数研发人员的印象里,X 系统很庞大,但实际上,您听到的,是那些对 X 不够了解的人的一种误解。在经过裁剪后的情况下,GTK /X 要比 GTK /FB 和 Qt/E 还要来得有效,且 XLIB 对一般的应用程式有着更好的支持作用,应用程式的研发会变得更高效。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



