当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 嵌入式Linux 中的应用中的GTK+

Unix/Linux
FreeBSD 数据转移办法
Freebsd 下运行QQ For Linux 的方法
FreeBSD, Debian, CentOS一个网卡绑定多个IP
freebsd下切换到root下 su: Sorry 的解决办法
Freebsd挂载光驱和软驱
FREEBSD下运行调试asterisk
一些 freebsd 的常用命令
笔记本上安装freebsd的小知识
FreeBSD系统下添加中文字体
FreeBSD挂载DOS分区,正确显示中文
FreeBSD挂载DOS分区时显示中文的方法
freebsd7.0安装系统图解(最新版)
服务器的时间同步设置方法
FreeBSD FTP 的架设教程
FreeBSD mpd VPN服务器安装步骤
更新FreeBSD Port Tree的几种方法小结
portupgrade 中文手册(翻译)
freebsd 服务器 ARP绑定脚本
在Ubuntu系统中定制 Compiz Fusion 特效
Ubuntu 7.10 绑定IP及MAC地址

Unix/Linux 中的 嵌入式Linux 中的应用中的GTK+


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 117 ::
收藏到网摘: n/a

    在嵌入式 Linux 下有很多图形界面系统 GUI,包括 Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作为一个开发者,到底使用什么样的 GUI 系统呢?对一个系统,将它改造为符合你的需求,你要做多少修改呢?修改后的系统的尺寸一般会有多大呢?这些都是开发人员会遇到的问题。我们在这里讨论的就是要对这些内容做一个具体细致的分析,通过我们的讨论,大家会对基于 GTK+ 和 X 的 GUI 在嵌入式Linux 下的应用有一个确切的了解。
正文

    在嵌入式系统应用日益发展的今天,越来越多的应用都需要使用到 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 对一般的应用程序有着更好的支持作用,应用程序的开发会变得更高效。

 

[1] [2] [3] 下一页