嵌入式GUI 方案比较 一.嵌入式GUI 概况 随着嵌入式系统的广泛应用,PDA、机顶盒、DVD/VCD 播放机及 WAP 手机已经迅速普及。图形用户界面(GUI)的广泛流行,是当今计算机技术的重大成就之一。嵌入式GUI 为嵌入式系统提供了一种应用于特殊场合的人机交互接口。它极大地方便了非专业用户的使用,因此实时嵌入式系统对 GUI 的需求越来越明显,而这一切均要求有一个高性能、高可靠的GUI 的支持。 综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对 GUI 的基本要求包括: 1.轻型、占用资源少。 2.高性能。 3.高可靠性。 4.可配置。 二.目前,主流的嵌入式Linux系统的GUI 解决方案有: 1. MicroWindow s MicroWindows 是一个著名的开放源码的嵌入式GUI 软件。MicroWindows提供了现代图形窗口系统的一些特性。MicroWindows API 接口支持类 Win32 API,接口试图和 Win32 完全兼容。它还实现了一些 Win32 用户模块功能。MicroWindows 采用分层设计方法,以便不同的层面能够在需要的时候改写,基本上用 C 语言实现。MicroWindows 能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。这样,MicroWindows 就显得十分小巧,便于移植到各种硬件和软件系统上。MicroWindows 已经支持 Intel 16位和 32 位 CPU、MIPS R4000 以及 ARM 芯片;但作为一个窗口系统,该项目提供的窗口处理功能还需要进一步完善,比如控件或构件的实现还很不完备,键盘和鼠标等的驱动还很不完善。其图形引擎也存在许多问题,可以归纳如下: (1) 无任何硬件加速能力。 (2) 图形引擎中存在许多低效算法,如在圆弧图函数的逐点判断剪切的问题。 值得一提的是,该项目的许多控件是从 MiniGUI 中移植过去的,扫雷游戏也是从 MiniGUI 中移植过去的。由于该项目缺乏一个强有力的核心代码维护人员,2003 年Microwindows 推出版本0.90 后,该项目的发展开始陷于停滞状态。 2.OpenGUI OpenGUI 在Linux系统上存在已经很长时间了。这个库是用C++编写的,只提供C++接口。OpenGUI 基于一个用汇编实现的x86 图形内核,提供了一个高层的C/C++图形/窗口接口。OpenGUI 提供了二维绘图原语、消息驱动的API及 BMP 文件格式支持。OpenGUI 功能强大,使用方便。OpenGUI 支持鼠标和键盘的事件,在Linux上基于Frame buffer 或者 SVGALib 实现绘图。由于其基于汇编...