您的位置 首页 电路

几种常用的嵌入式Linux GUI及其特色

随着Internet与网络的迅速发展并向家庭领域不断扩展,使消费电子、计算机、通信(3C)一体化趋势日趋明显,嵌入式系统再度成为研究与应用的热点。嵌入式实时Linux操作系统以价格低廉、功能强大又

  跟着Internet与网络的敏捷开展并向家庭范畴不断扩展,使消费电子、计算机、通讯(3C)一体化趋势日趋显着,嵌入式体系再度成为研讨与运用的热门。嵌入式实时Linux操作体系以价格低廉、功用强大又易于移植而正在被广泛选用,成为新式的力气,现在跟着WAP手机、PDA、机顶盒、及DVD/VCD播放机现已敏捷遍及,用户对这些手持式设备的GUI提出了更高的要求,期望能看到像PC机才具有的富丽漂亮的GUI。GUI现已成为了人与机器交流的桥梁,嵌入式体系对GUI的需求越来越高,而这全部均要求有一个轻型、占用资源少、高性能、高牢靠、可装备及漂亮的GUI支撑。

  1 Java的图形界面东西

  Java技能关于服务器,个人电脑和嵌入式体系来说是一项巨大的技能。因为其具有跨渠道等特性。Java在服务器和桌面电脑方面的运用是十分成功的。但是在GUI方面,Java只用十分有限的一些特征去构建图形用户界面。其思维便是选用渠道无关的Java运用程序接口打包到不同的操作体系来开发本地图形用户界面,被称之为笼统的窗口东西(AWT)。仅有一般的部件如文件域、文本区、挑选框、单选按钮、列表框和按钮被AWT支撑,图形和图画的特性支撑十分有限,也便是说,只满意构建简略的applet程序。认识到需求更高档的图形用户界面组件和图形才能,Sun公司开发了Swing,Java 2D,Java3D,图画的输入/输出,以及Java高档图画(JAI)。Swing是用来构建Java图形界面的规范API(运用程序接口),一些AWT类由Swing根底而来。它有一套彻底的组件从按钮到文件域、表格、树型和文件编辑器。这些组件不依赖于操作体系本地的部件,而是用原始的图形像直线、矩形、文字画出。这种画代表感观插件,它能够仿照本地的感观。SWT是根据Java开发的,它的规划理念是最大化了操作体系的图形构件的API,便是说只需操作体系供给了相应图形的构件,那么SWT仅仅简略运用JNI技能调用它们,只需那些操作体系中不供给的构件,SWT才自己去做一个模仿的完结。其他SWT还供给对操作体系本地图形用户界面的直接拜访,因而,根据SWT的Java运用程序具有本地的图形用户界面而且能够和本地其他运用程序和部件集成在一起。运用SWT开发包,简略、跨渠道、牢靠等这些Jaya言语自身所具有的长处正逐步融合到图形界面的运用程序开发中去。Java言语的另一扇成功之门正在逐步翻开。

    

1.jpg

  2 SWT+GtkFB图形体系的体系结构

  2.1 SWT+GtkFB图形体系的体系结构

  2.1.1 SWT

  SWT处于体系组织的最上层,它与Java内的AwT和Swing同归于规划图形界面所需的高档函数库。而且SWT针对AWT 以及Swing的一些问题作了改进,现在它已开展成一套与作业体系无关的图形元件函数库。在元件的发生方面选用了恰当的模仿,在根本的元件方面是选用原有作业体系的,关于较杂乱的元件才用仿真的技能。根据SWT的Java运用程序具有本地的图形用户界面,而且能够和本地其他运用程序,以及部件集成在一起。

  SWT是根据Java言语开宣布来的高档图形元件库,如图2所示SWT在Java端经过JNI(Java Native InteRFace)技能直接调用native端的GtkFB来运用操作体系的资源,JNI技能使得SWT程序能够与其他言语编写的Native端的代码相互协作,将它们整合在一起;另一方面可使运转在JVM(JAava虚拟机)中的SWT代码调用GtkFB库函数或其他程序;此外运用InvocatiON API,可将Java虚拟机嵌入到native端的运用中。JNI这个接口是双向的,相当于桥梁和枢纽,它将SWT代码和native端的GtkFB代码衔接起来。

    

2.jpg

 

  2.1.2 Gtk库

  如图1所示,GTK会用到几个衔接库,如根本数据类型用的Glib库,它是由根底类、中心运用支撑类、实用功用类、数据类和目标体系类五个部分组成的。

  Pango是用于国际化文本的布局和显现的全功用结构。Pango能够处理以非从左到右方向摆放的文本,而且能够简单地办理杂乱言语,乃至还能够处理根据运用环境而选用不同方法的信函。例如它支撑双向文本,用户能够将从左到右的文本和从右到左的文本混合编列;还可有用于确认各种杂乱文本(如阿拉伯语和泰米尔语)形状的插件。Pango不仅仅是国际化,而且Pango库在Xft和XRender的支撑下能很好地处理抗锯齿字体文本的显现。

  Pango还支撑各种图形格局如libpng,libjpeg,libtiff和Framebuffer port用的FreeType等。实践上GTK供给gdk-pixbuf,gdk和gtk三个衔接库,其间Gdk-pixbuf让咱们可做相关的图画作业,gdk是窗口绘图体系的笼统层,framebuffer相关的作业大部分在此完结,而gtk则是高层的运用程序接口。

    

3.jpg

  Atk(Accessibility Toolkit)可拜访性东西箱。GTK充分运用ATK使残障人士(如视力低下或行动不便)与GTK运用程序交互成为或许。

  2.1.3 GtkFB的作业原理

  DirectFB拜访图形硬件设备依赖于操作体系供给的内核接口,即帧缓冲设备(FrameBuffer)。FrameBuffer实践上是用一块硬件来做显卡和软件之间的桥梁,Linux的内核将其敞开出来,运用户的程序能够经过块内存来存取显卡。例如设定显现分辨率和颜色数、存取显现内存区等。不同的Linux需求供给针对不同显现硬件FrameBuffer的驱动程序,这便是说DirectFB需求运转于FramBuffer之上,但是Linux内核供给了常见芯片的FrameBuffer驱动。

  当一个运用程序衔接到GtkFB时会调用gtk_init(),如图3所示,此刻GtkFB 发动Linux的Framebiffer,设定分辨率和颜色数,接下来翻开键盘和鼠标等外设(PDA翻开按键和触控屏幕).然后到特定目录去读取字型,最终对窗口和事情办理作初始化操作。GtkFB能够支撑8、16、24、32bpp的framebuffer。

  为了履行一个特定的图形操作,DirectFB芯片驱动程序将拜访图形设备内存映射的I/O端口,而且把指令传递到图形设备卡的加快引擎。实践的硬件加快是彻底在用户空间内完结的。

  2.2 SWT+GtkFB图形体系的长处

  2.2.1 内存耗费小、运转速度快特别合适嵌入式产品

  因为GtkFB直接运转在FrameBufer之上,越过X体系,这样省下了X Server这一部分资源,这使得在内存耗费、运转速度上得到明显进步。其他选用的JNI技能使得程序运转速度、事情的呼应有较高的进步,能满意时刻要求较为严厉的实时运用场合。

  2.2.2 体系安稳性好

  SWT 的安稳性,关键是源于SWT 的规划理念。SWT最大化了操作体系的图形构件API,便是说只需操作体系供给了相应图形的构件,那么SWT仅仅运用JNI技能调用它们,只需那些操作体系中不供给的构件,SWT才自己去做一个模仿的完结。能够看出SWT性能上的安稳很大程度上取决于相应操作体系图形构件的安稳性。

  2.2.3 易于移植和同享

  SWT的API和桌面版彻底相同,因而代码能够很简单地在桌面和嵌入式设备之间移植与同享。

  2.2.4 细巧可装备

  SWT选用了LGPL授权方法,用户能够自由地乃至是鼓舞修正源代码使其愈加满意用户的需求,很简单根据用户的需求来削减特定的SWT+GtkFB,根据LGPL许可证,用户需求发布修正的源代码,但用户不用发布自给运用程序的源代码。

  2.2.5 易于开发

  SWT是根据Java言语开发的,具有渠道独立性、面向目标、可移植、安全等Java言语所具有特色。用户能够很简单的根据SWT供给的Widget(构件)开宣布满意自己需求的Widget,而且很简单地运用这些Widget去构建运用程序。

  3 SWT+GtkFB图形体系的完结

  3.1 前期预备

  在Linux编译和装置SWT+GtkFB,首先到http://www.gtk.org/download下载如下的包:pkg-config、glib2.x;atk、pango、DirectFB、gtk+2.x。其次到http://www.eclipse.org/download下载swt.tgr.gz。

  下一步便是在/home/XXX/目录下创立SWT 和GTK两个目录而且设置环境变量。如下:

  export SWT_HOME=/home/XXX/SWTexport SWT_HOME=/home/XXX/GTKexport PKG_CONFIG_PATH=$GTK_HOME /lib/pkgconfigexport LD_LIBRARY_PATH=$GTK_HOME/lib;$LD_LIBRARY_PATH此外添加“/home/XXX/GTK/bin”到体系的环境变量PATH下。

  3.2 编译和装置Gtk+2.0

  3.2.1 编译和装置pkg-config

  tar zxvf glib-2.0.6.tar.gz -C $GTK_HOME/src

  cd $GTK HOME/src/glib-2.0.6

  。/configure –prefix=$GTK_HOME

  make

  make inSTall

  3.2.2 编译和装置atk

  tar zxvf atk-1.0.1.tar.gz -C $GTK_HOME/src

  cd $GTK_HOME/src/atk-1.0.1

  。/configure –prefix=$GTK_HOME

  make

  make install

  3.2.3 编译和装置pango、Direct FB、gtk+2.0 、swt-forgtk2.2

  过程相似atk的装置。

  4 嵌入式Linux GUI的运用远景展望

  嵌入式Linux GUI的运用范畴许多,既能够用于家电商场,还能够用于商业商场、工业及自动化商场、国防商场、通讯商场等。例如,在通讯商场,手机、可视电话、机顶盒等或许成为嵌入式Linu.x的运转渠道,一个人性化的用户界面是赢得顾客关键因素。因而嵌入式Linux图形体系将担任着愈加重要的人物。

  未来几年,嵌入式Linux GUI将朝以下方向开展:榜首,轻型、占用资源少,不期望建立在巨大负担的、十分耗费体系资源的操作体系和GUI之上。第二,高性能、高牢靠性,特别是工业实时控制体系,对实时性的要求十分高,而且比起嵌入式体系来说,对GUI的要求也更高。第三,可装备,咱们有必要清楚的意识到,嵌入式体系是一种定制设备,它们对GUI的需求各不相同,有的体系只需求一些图形功用,而有些体系要求齐备的GUI支撑,因而,GUI也有必要是可定制的。

 

 

 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/159084.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部