传统桌面 GUI
X Window System
the X Window System (commonly X11 or X) is a windowing system that
implements the X display protocol and provides windowing on bitmap
displays. It provides the standard toolkit and protocol with which to
build graphical user interfaces (GUIs) on most Unix-like operating
systems and OpenVMS, and has been ported to many other contemporary
general purpose operating systems. There are two implemention: XFree86
and X.Org
GTK+ is a highly usable, feature rich toolkit for creating graphical
user interfaces which boasts cross platform compatibility and an easy
to use API. The GNOME project provides two things: The GNOME desktop
environment, an intuitive and attractive desktop for users, and the
GNOME development platform, an extensive framework for building
applications that integrate into the rest of the desktop.
Qt is a cross-platform application development framework, widely used
for the development of GUI programs (in which case it is known as a
widget toolkit), and also used for developing non-GUI programs such as
console tools and servers.KDE or the K Desktop Environment, is a
network transparent contemporary desktop environment for UNIX
workstations. KDE seeks to fulfill the need for an easy to use desktop
for UNIX workstations, similar to desktop environments found on
Macintosh and Microsoft Windows operating systems.
Mac OS X is a uniquely powerful development platform, supporting
multiple development technologies including UNIX, Java, the
proprietary Cocoa and Carbon runtime environments, and a host of open
source, web, scripting, database, and development technologies. Built
around the integrated stack of graphics and media technologies
including Core Image, Core Video, Core Audio and QuickTime, Mac OS X
provides a solid foundation for developers to create great
applications. Mac OS X Tiger also offers powerful user technologies
like Spotlight and Dashboard that can be exploited by developers in
their applications.
- Swing: the Java GUI components
- Events: responding to user input
- Graphics: basic 2D painting
- Manipulation: advanced user input, dragging, etc.
- Animation
开源的嵌入式 GUI
DirectFB is a thin library that provides developers with hardware
graphics acceleration, input device handling and abstraction,
integrated windowing system with support for translucent windows and
multiple display layers on top of the Linux Framebuffer Device. It is
a complete hardware abstraction layer with software fallbacks for
every graphics operation that is not supported by the underlying
hardware.
FBUI is a tiny GUI that resides inside the Linux kernel. The key
concepts of FBUI are that firstly it is small; secondly that it is
spartan, which is good; thirdly that it is just another driver; and
fourthly that drivers belong in the kernel, not in userspace.
This project includes all portions of the UI and the framework. The
underlying framework is GTK-based and uses the Hildon application
framework*. As a result, MID applications will share many of the UI
and style characteristics of Nokia N-level handheld devices. However,
the MID UI, navigation, and user experience will be different in many
ways.
Hilton is an application framework composed of a lightweight desktop,
a set of widgets optimized for handheld devices, a set of theming
tools and other complementary lib and apps.
This project aims to provide a Free Software GUI environment for
palmtop/handheld computers running the GNU/Linux operating system. GPE
uses the X Window System, and the GTK+ widget toolkit
GtkFB
GtkFB beginning with version 2.0, GTK+ will support rendering directly to the Linux framebuffer instead of using the X Window System. This is good for embedded systems and devices with limited resources, because it eliminates the overhead of an X server, while still taking advantage of the power of GTK+ and the large base of existing programs.
Matchbox is a small foot-print window manager and associated applications, designed specifically for resource-constrained X11-enabled devices such as handheld computers, PDA's, set-top boxes, and consumer devices where display size, storage, CPU bandwidth, and input mechanisms are limited. Matchbox includes a window manager, a panel, a desktop, a shared utility library, and a number of small panel applications.
Microwindows is an Open Source project aimed at bringing the features of modern graphical windowing environments to smaller devices and platforms. Microwindows applications can be built and tested on the Linux desktop, as well as cross-compiled for the target device.
OpenGUI is a fast, 32-bit, high-Level C/C++ graphics & windowing library/GUI built upon a fast, low-level x86 asm graphics kernel. It is under LGPL license. OpenGUI provides 2D drawing primitives and an event-driven windowing API for easy application development.
PicoGUI is a small, portable client/server GUI designed to work on
many types of hardware including handheld computers. Like the X Window
System, it has a flexible client-server architecture. Unlike X,
however, fonts, bitmaps, widgets, and anything else the application
needs are built directly into the server. This sacrifices a small
decrease in flexibility for an increase in speed and a large decrease
in size.
Tiny-X
Tiny-X is a small footprint X Window server implementation for embedded systems. It was developed by Keith Packard of the XFree86 Core Team, sponsored by SuSE. The goal was to create something that would work well in a small memory footprint and, importantly, be robust in near out-of-memory situations. Typical X servers based on Tiny-X can fit in less than 1MB on x86 CPUs. The project has since forked into several projects, including KDrive, SmallX, and http://www.x-oz.com/tinyx.html.
Xynth Windowing system is a free software project to build a portable, embedded client-server windowing system. The Xynth Windowing System, released under the GPL, offers a lightweight GUI-capable windowing system usable in Linux-based embedded systems and devices, such as handhelds and set-top boxes.
非开源的嵌入式 GUI
Qtopia is a mobile device window environment and application suite for PDAs, palmtop computers, Internet appliances, and similar devices. Qtopia is based on Qt/Embedded (described above), and includes PIM applications, Internet clients, entertainment and games, utilities, and more. Qtopia/PDA is available in commercial or open source licenses, while Qtopia Phone Edition is commercial-only.
Tilcon Interface Development Suit is a multi-platform user interface development solution that delivers robust, highly interactive user interfaces for real-times, embedded and mission critical applications.
MiniGUI is a dual-licensed (GPL or commercially licensable) project to create a small windowing system support library for embedded systems and devices, which offers the equivalent window management functions of Win32 APIs.
This commercial graphics framework from Australian ISV Fluffy Spider is a set of lightweight special effects software for user interfaces (UIs). FancyPants supports skinning, overlays, and fancy effects, and targets media-centric consumer and mobile devices, such as POS (point-of-sales/service) systems, set-top boxes, and mobile phones.
LinuxPEG is an embedded GUI library and development toolkit designed specifically for embedded systems. The LinuxPEG library is designed to run on any Linux distribution and its development tools run in the X11 development environment. LinuxPEG, which is available under license, is small footprint, completely ROMable, includes full C++ source code, and is royalty fee.
基于脚本语言的 GUI
python-etk
其它
STL is an open source cross-platform multimedia development API/library designed to provide fast access to the graphics framebuffer and audio device. SDL is currently being applied to a number of Embedded Linux implementations such as Microwindows.
Allegro is a game programming library for C/C++ developers distributed
freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD,
Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. It provides
many functions for graphics, sounds, player input (keyboard, mouse and
joystick) and timers. It also provides fixed and floating point
mathematical functions, 3d functions, file management functions,
compressed datafile and a GUI.
See Also
Embedded Linux Graphics Quick Reference Guide
|