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

嵌入式ARM 2019-03-05 11:38


来源于CSDN


随着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语言的另一扇成功之门正在逐渐打开。
               

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.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则是高层的应用程序接口。
                     
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,首先下载如下的包:pkg-config、glib2.x;atk、pango、DirectFB、gtk+2.x。其次下载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也必须是可定制的。


点赞!▼

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • 瑞芯微电子(Rockchip)是国内领先的AIoT SoC设计制造企业,专注于智能应用处理器及周边配套芯片的研发。飞凌嵌入式作为瑞芯微的战略合作伙伴,已基于瑞芯微RK3399、RK3568、RK3588、RK3576、RK3562和RK3506系列处理器推出了多款嵌入式主控产品,包括核心板、开发板和工控机,这些产品已成功帮助数千家企业客户完成了项目的快速开发和落地。本文将系统地梳理飞凌嵌入式RK平台主控产品在开发过程中常用的命令,助力更多开发者快速掌握RK系列芯片的开发方法。01、查看CPU温度
    飞凌嵌入式 2025-04-16 15:50 148浏览
  • 在这个AI技术日新月异的时代,人工智能(AI)已经逐渐渗透到我们生活的方方面面,从工作到学习,从娱乐到医疗,AI都在以其独特的方式改变着我们的世界。作为一名计算机专业的大学老师,我近期有幸阅读了《AI帮你赢:人人都能用的AI方法论》一书,深感这本书不仅为专业人士提供了宝贵的AI使用技巧,更为广大学生打开了一扇通往AI世界的大门。 《AI帮你赢》一书于2024年12月正式出版,也是紧跟时代发展的一本书,最新的日期。这本书以通俗易懂的语言,系统地阐述了人工智能的核心理念、应用场景及实践方法
    curton 2025-04-16 21:47 78浏览
  • 一、引言:健康管理数字化浪潮下的血压监测转型在慢性病高发与老龄化加剧的双重压力下,家庭健康监测设备正从“被动测量工具”向“主动健康管家”演进。传统血压计虽能提供基础数值,却无法解决用户的核心痛点:数据如何解读?异常如何干预?风险如何预防?WT2605C芯片方案的诞生,通过“AI对话+云端互联+个性化服务”三重技术突破,重新定义了血压计的价值边界——它不仅是一台测量仪器,更是一个全天候在线的健康管理生态系统。二、传统血压计的局限与用户需求升级1. 功能单一性困境数据孤岛:仅显示收缩压/舒张压数值,
    广州唯创电子 2025-04-16 08:55 139浏览
  •   网络链路攻防战术对抗仿真系统软件深度剖析   一、系统概览   北京华盛恒辉网络链路攻防战术对抗仿真系统软件,是专为网络安全领域攻防对抗需求打造的高仿真平台。它模拟真实网络环境中的攻、防行为,为安全研究人员以及红队、蓝队提供实战训练和策略验证工具。该系统以动态仿真技术为核心,融合人工智能与大数据分析,实现攻防战术的自动推演与可视化展示 。   应用案例   目前,已有多个网络链路攻防战术对抗仿真系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润网络链路攻防战术对抗仿
    华盛恒辉l58ll334744 2025-04-16 14:42 80浏览
  • 多极电磁铁的核心应用领域一、工业制造领域1.‌磁性材料处理‌:用于多极磁环充磁,通过四极、六极或八极磁场设计,使磁环获得均匀或梯度分布的磁性能,提升电机、传感器等设备的效率‌。在电子束焊接中控制电子束的聚焦和偏转,增强焊接精度(如精密电子元件加工)‌。2.‌机械控制与自动化‌应用于旋转磁场导向系统,优化工业机器人、自动化产线中磁性物料的传输路径。配合电磁吸盘用于起重设备,实现对金属部件的快速吸附与释放,提高搬运效率。二、科研实验领域1.‌物理与材料研究‌在实验室中生成径向梯度磁场或均匀磁场,用于
    锦正茂科技 2025-04-16 09:39 78浏览
  • 一、智能门锁市场痛点与技术革新随着智能家居的快速发展,电子门锁正从“密码解锁”向“无感交互”进化。然而,传统人体感应技术普遍面临三大挑战:功耗高导致续航短、静态人体检测能力弱、环境适应性差。WTL580微波雷达解决方案,以5.8GHz高精度雷达感知技术为核心,突破行业瓶颈,为智能门锁带来“精准感知-高效触发-超低功耗”的全新交互范式。二、WTL580方案核心技术优势1. 5.8GHz毫米波雷达:精准感知的革命全状态人体检测:支持运动、微动(如呼吸)、静态(坐卧)多模态感知,检测灵敏度达0.1m/
    广州唯创电子 2025-04-15 09:20 131浏览
  • 四、芯片封测技术及应用场景1、封装技术的发展历程 (1)DIP封装:早期分立元件封装,体积大、引脚少; (2)QFP封装:引脚密度提升,适用于早期集成电路。 (3)BGA封装:高密度互连,散热与信号传输优化; (4)3D封装:通过TSV(硅通孔)实现垂直堆叠,提升集成度(如HBM内存堆叠); (5)Chiplet封装:异质集成,将不同工艺节点的模块组合(如AMD的Zen3+架构)。 (6)SiP封装:集成多种功能芯片(如iPhone的A系列SoC整合CPU、GPU、射频模块)。2、芯片测试 (1
    碧海长空 2025-04-15 11:45 307浏览
  • 三、芯片的制造1、制造核心流程 (1)晶圆制备:以高纯度硅为基底,通过拉晶、切片、抛光制成晶圆。 (2)光刻:光刻、离子注入、薄膜沉积、化学机械抛光。 (3)刻蚀与沉积:使用干法刻蚀(等离子体)精准切割图形,避免侧壁损伤。 (4)掺杂:注入离子形成PN结特性,实现晶体管开关功能。2、材料与工艺创新 (1)新材料应用: 高迁移率材料(FinFET中的应变硅、GaN在射频芯片中的应用); 新型封装技术(3D IC、TSV硅通孔)提升集成度。 (2)工艺创新: 制程从7nm到3nm,设计架构由F
    碧海长空 2025-04-15 11:33 277浏览
  • 2025年4月13日(中国武汉)——在全球经济分化与地缘政治不确定性加剧的背景下,科技与金融的深度融合已成为推动创新与繁荣的关键动力。为实现科技创新、产业进步和金融发展有机结合,发挥金融对科技创新和产业进步的支持作用,国际金融论坛(IFF)科技金融委员会启动大会暨首届科技金融圆桌会议于4月13日在湖北省武汉市武汉产业创新发展研究院成功举行。同时,IFF科技金融委员会由国际金融论坛IFF与武创院联合成立。本次大会汇聚了来自政府、产业与学术研究机构及金融等多领域的精英,共同探讨科技金融如何更好地服务
    华尔街科技眼 2025-04-15 20:53 101浏览
  • 一、芯片的发展历程总结:1、晶体管的诞生(1)电子管时代 20世纪40年代,电子管体积庞大、功耗高、可靠性差,无法满足计算机小型化需求。(2)晶体管时代 1947年,贝尔实验室的肖克利、巴丁和布拉顿发明点接触晶体管,实现电子信号放大与开关功能,标志着固态电子时代的开端。 1956年,肖克利发明晶体管。(3)硅基晶体管时代 早期晶体管采用锗材料,但硅更耐高温、成本低,成为主流材料。2、集成电路的诞生与发展 1958年,德州仪器工程师基尔比用锗材料制成世界上第一块含多个晶体管的集成电路,同年仙童半导
    碧海长空 2025-04-15 09:30 197浏览
  • 一、引言:智能化趋势下的学爬玩具开发挑战随着早教理念的普及,学爬玩具作为婴幼儿早期运动能力开发的重要工具,市场需求持续增长。然而,传统学爬玩具开发面临多重挑战:需集成红外遥控、语音交互、电机控制等多模块,开发周期长、硬件成本高;复杂的红外编解码与语音功能实现依赖工程师深度参与,技术门槛陡增。如何以更低成本、更快速度打造差异化产品,成为行业亟待解决的痛点。二、传统开发模式痛点分析硬件冗余红外接收模块、语音芯片、主控MCU分立设计,导致PCB面积增加,BOM成本攀升。开发周期长需工程师独立完成红外协
    广州唯创电子 2025-04-16 08:40 136浏览
  • 4月15日,京东全球购迎来十周年生日。为了回馈广大用户十年来的支持与信赖,早在4月初,京东全球购就已率先开启十周年庆典活动,为消费者带来了一场消费盛宴。来自全球各地的进口好物,以全场进口大牌1元抢、爆品低至5折、跨店每满200减30的优惠价格被呈现在消费者面前。同时,在迎来十周年庆典之际,京东全球购还宣布,未来一年,将投入亿级资源,升级四大商家扶持举措,包括提供仓配和流量等多项补贴,推出扶持新品、新商家等举措,助力更多进口商家降本提效,在京东获得可持续、高质量成长。十年如一日 打造跨境购物首选平
    华尔街科技眼 2025-04-16 16:18 96浏览
  • 二、芯片的设计1、芯片设计的基本流程 (1)需求定义: 明确芯片功能(如处理器、存储、通信)、性能指标(速度、功耗、面积)及目标应用场景(消费电子、汽车、工业)。 (2)架构设计: 确定芯片整体框架,包括核心模块(如CPU、GPU、存储单元)的协同方式和数据流路径。 (3)逻辑设计: 通过硬件描述语言(如Verilog、VHDL)将架构转化为电路逻辑,生成RTL(寄存器传输级)代码。 (4)物理设计: 将逻辑代码映射到物理布局,涉及布局布线、时序优化、功耗分析等,需借助EDA工具(如Ca
    碧海长空 2025-04-15 11:30 226浏览
  •   水下装备体系论证系统软件全面解析   一、系统概述   水下装备体系论证系统软件是针对水下作战、资源勘探、海洋工程等需求,专门设计的信息化论证工具。该系统通过集成建模、仿真、优化等技术,对水下装备体系的使命任务、环境适应性、技术参数、作战效能等进行全流程分析,为装备体系设计、方案权衡和决策提供科学依据。   应用案例   目前,已有多个水下装备体系论证系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润水下装备体系论证系统。这些成功案例为水下装备体系论证系统的推广和应用提
    华盛恒辉l58ll334744 2025-04-16 17:03 116浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦