嵌入式GUI方案选择

时间:2022-10-03 19:34:40

最近有项目需要使用GUI,在网上找了下嵌入式GUI的方案,备份如下:

平台限制:

  1. Linux平台;
  2. ROW和RAW在128M范围内;
  3. 没有GPU,只有framebuffer;
  4. GUI方案尽可能小、易用、方便,没有license方面的问题。
方案如下:

  1. GtkFB

    lisence:

    GTK+  LGPL2.1

     

    Limitations:

    a. The mainlimitation is the single-process model

    b. Another problem is that some GTK+ programs make direct X calls when using Xfeatures that are not supported in Gdk. These programs cannot be used withGtkFB without change.

    c. X has mature and broad driver support with very good hardware acceleration.GtkFB can support acceleration, but none is currently written, and writingacceleration code can be difficult. This means that GtkFB can be a lot slower,especially on large screens.

    d. Some other interesting X features are not supported by framebuffer, such asnetwork transparency, DGA, multiple screen and visual support, Xv extension,and Xrender extension. 

    Memory and Storage Requirements:

    a. storage:

      The stripped, shared GtkFB libraries occupy about 2 MB of disk space.Additionally FreeType is 202KB, libjpeg is 138KB, libpng 126KB, libz (needed bylibpng) 58KB. and the GtkFB can be more smaller by some configuration

    b. memory:

       RSS 3.4M

       VSS 6.6M

     

    reference:

            http://www.gtk.org

            http://blog.chinaunix.net/uid-796091-id-2035248.html


  2.  Qt embedded

    lisence:

            qt version < 5.4  LGPL v2.1

            qt version >= 5.4 LGPL v3

     

    qt Embedded memeory requirememnts:

     

    Architecture

    Compiler

    QtCore

    QtGui

    QtNetwork

    QtWebKit

    Minimal

    Normal

    Minimal

    Normal

    Minimal

    Normal

    Minimal

    Normal

    linux-arm-g++

    GCC 4.1.1

    1.9M

    3.2M

    4.1M

    11M

    507K

    1.0M 

    N/A

    17M

     

    reference:

            https://www.qt.io/

            http://doc.qt.io/qt-4.8/requirements-embedded-linux.html#memory-requirements

     


  3.  miniGUI

    lisence:

    a. GPL v3(mstar不允许使用GPLv3,详情请参考附件)

    b. comercial

                      10,000 to 99,999 copies, the price will be USD1.00

                      100,000 to 999,999 copies, the price will be USD0.67

                      1,000,000 to 9,999,999 copies, the price will be USD0.33

      miniGUI开发套件(IDE)要收费 USD3000.00

     

    memory requirememnts:

                      MiniGUI library: 700KB~1MB (decided by configuration options)

                      MiniGUI fonts, bitmaps, and other resources: 400KB~2MB (decided byapplications, minimum 200KB)

                      Applications: 100KB~2MB (decided by system)

     

    reference:

            http://www.minigui.org/


  4. Microwindows

Microwindows是一个典型的基于Server/Clinent体系结构的GUI系统,基本分为三层,如图2所示。
   
 嵌入式GUI方案选择

  最底层是面向图形显示和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的抽象接口,并进行窗口管理;最高层分别提供兼容于X Window和ECMA APIW(Win32子集)的API。其中使用Nano-X接口的API与X接口兼容,但是该接口没有提供窗口管理,如窗口移动和窗口剪切等高级功能,系统中需要首先启动nano-X的Server程序nanoxserver和窗口管理程序nanowm。用户程序连接nano-X的Server获得自身的窗口绘制操作。使用ECMA APIW编写的应用程序无需nanox-server和nanowm,可直接运行。
  
  Microwindows提供了相对完善的图形功能和一些高级的特性,如Alpha混合、三维支持和TrueType字体支持等。该系统为了提高运行速度,也改进了基于Socket套接字的X实现模式,采用了基于消息机制的Server/Client传输机制。Microwindows也有一些通用的窗口控件,但其图形引擎存在许多问题,可以归纳如下:
  
  *无任何硬件加速能力;
  
  *图形引擎中存在许多低效算法,如在圆弧图函数的逐点判断剪切的问题。
  
  由于该项目缺乏一个强有力的核心代码维护人员,2003年Microwindows推出版本0.90后,该项目的发展开始陷于停滞状态。

  1. FLTK

    FLTK,一个轻量级的GUI开发库,优点跨平台、内置 OpenGL功能、速度更快、尺寸更小、协议宽松(LGPL),缺点是对于复杂的界面构件支持不够,资源支持的不足等 

   最大的缺点是:就是对非英文字体特别是中文的支持比较差,甚至是非常差,它不支持unicode编码。需要到2.0版本才可能支持,还在开发当中

参考: http://www.fltk.org/index.php