基于 GTK+和 X 的 GUI 在嵌入式 Linux 的应用
在嵌入式 Linux 下有很多图形界面系统 GUI,包括
Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作为一个开发者,到底使用什么
样的 GUI 系统呢?对一个系统,将它改造为符合你的需求,你要做多少修改呢?修改后的
系统的尺寸一般会有多大呢?这些都是开发人员会遇到的问题。我们在这里讨论的就 是要
对这些内容做一个具体细致的分析,通过我们的讨论,大家会对基于 GTK+ 和 X 的 GUI
在嵌入式 Linux 下的应用有一个确切的了解。
正文
在嵌入式系统应用日益发展的今天,越来越多的应用都需要使用到 GUI 来进行开发,
以此来获得更好的交互性。
嵌入式 Linux 下 GUI 的选择,对大多数开发人员来说是一个需要权衡对比的过程。
选择 GTK+ 运行在 X 系统上,然后 X 系统运行在嵌入系统的 framebuer 上,这会是
一个很好的选择。
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++;