溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

幾種常用的嵌入式Linux GUI有哪些以及其特點是什么

發(fā)布時間:2021-11-03 15:51:45 來源:億速云 閱讀:175 作者:柒染 欄目:建站服務(wù)器

這篇文章給大家介紹幾種常用的嵌入式Linux GUI有哪些以及其特點是什么,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

隨著Internet與網(wǎng)絡(luò)的迅速發(fā)展并逐步走進人們的家庭,使消費電子、計算機、通信(3C)一體化趨勢日趨明顯,嵌入式系統(tǒng)也成為研究與應(yīng)用的熱點。嵌入式實時Linux操作系統(tǒng)以價格低廉、功能強大又易于移植而正在被廣泛采用,成為新興的力量,當然,有眼光的人早已經(jīng)看出其中的發(fā)展和前景。如今隨著WAP手機、PDA、機頂盒、及DVD/VCD播放機已經(jīng)迅速普及,用戶對這些手持式設(shè)備的GUI提出了更高的要求,希望能看到像PC機才擁有的華麗美觀的GUI。GUI已經(jīng)成為了人與機器溝通的橋梁,嵌入式系統(tǒng)對GUI的需求越來越高,而這一切均要求有一個輕型、占用資源少、高性能、高可靠、可配置及美觀的GUI支持。接下來我們就一起來看看:
Java技術(shù)對于服務(wù)器,個人電腦和嵌入式系統(tǒng)來說是一項偉大的技術(shù)。由于其具有跨平臺等特性。Java在服務(wù)器和桌面電腦方面的應(yīng)用是非常成功的。然而在GUI方面,Java只用非常有限的一些特征去構(gòu)建圖形用戶界面。其思想就是采用平臺無關(guān)的Java應(yīng)用程序接口打包到不同的操作系統(tǒng)來開發(fā)本地圖形用戶界面,被稱之為抽象的窗口工具(AWT)。僅有普通的部件如文件域、文本區(qū)、選擇框、單選按鈕、列表框和按鈕被AWT支持,圖形和圖像的特性支持非常有限,也就是說,只足夠構(gòu)建簡單的applet程序。認識到需要更高級的圖形用戶界面組件和圖形能力,Sun公司開發(fā)了Swing,Java 2D,Java3D,圖像的輸入/輸出,以及Java高級圖像(JAI)。Swing是用來構(gòu)建Java圖形界面的標準API(應(yīng)用程序接口),一些AWT類由Swing基礎(chǔ)而來。它有一套完全的組件從按鈕到文件域、表格、樹型和文件編輯器。這些組件不依賴于操作系統(tǒng)本地的部件,而是用原始的圖形像直線、矩形、文字畫出。這種畫代表感觀插件,它能夠模仿本地的感觀。SWT是基于Java開發(fā)的,它的設(shè)計理念是最大化了操作系統(tǒng)的圖形構(gòu)件的API,就是說只要操作系統(tǒng)提供了相應(yīng)圖形的構(gòu)件,那么SWT只是簡單應(yīng)用JNI技術(shù)調(diào)用它們,只有那些操作系統(tǒng)中不提供的構(gòu)件,SWT才自己去做一個模擬的實現(xiàn)。另外SWT還提供對操作系統(tǒng)本地圖形用戶界面的直接訪問,因此,基于SWT的Java應(yīng)用程序擁有本地的圖形用戶界面并且可以和本地別的應(yīng)用程序和部件集成在一起。使用SWT開發(fā)包,簡單、跨平臺、可靠等這些Jaya語言本身所具有的優(yōu)點正漸漸融合到圖形界面的應(yīng)用程序開發(fā)中去。Java語言的另一扇成功之門正在逐漸打開。


2.1 SWT+GtkFB圖形系統(tǒng)的體系結(jié)構(gòu)


SWT處于體系機構(gòu)的最上層,它與Java內(nèi)的AwT和Swing同屬于設(shè)計圖形界面所需的高級函數(shù)庫。而且SWT針對AWT 以及Swing的一些問題作了改善,如今它已發(fā)展成一套與作業(yè)系統(tǒng)無關(guān)的圖形元件函數(shù)庫。在元件的產(chǎn)生方面采用了適當?shù)哪M,在基本的元件方面是采用原有作業(yè)系統(tǒng)的,對于較復雜的元件才用仿真的技術(shù)?;赟WT的Java應(yīng)用程序擁有本地的圖形用戶界面,并且可以和本地別的應(yīng)用程序,以及部件集成在一起。

幾種常用的嵌入式Linux GUI有哪些以及其特點是什么
2.1.2 Gtk庫


Pango是用于國際化文本的布局和顯示的全功能框架。Pango可以處理以非從左到右方向排列的文本,并且可以容易地管理復雜語言,甚至還可以處理根據(jù)使用環(huán)境而采用不同形式的信函。例如它支持雙向文本,用戶可以將從左到右的文本和從右到左的文本混合編排;還可有用于確定各種復雜文本(如阿拉伯語和泰米爾語)形狀的插件。Pango不僅僅是國際化,而且Pango庫在Xft和XRender的支持下能很好地處理抗鋸齒字體文本的顯示。

幾種常用的嵌入式Linux GUI有哪些以及其特點是什么

2.1.3 GtkFB的工作原理


當一個應(yīng)用程序連接到GtkFB時會調(diào)用gtk_init(),如圖3所示,此時GtkFB 啟動Linux的Framebiffer,設(shè)定分辨率和色彩數(shù),接下來打開鍵盤和鼠標等外設(shè)(PDA打開按鍵和觸控屏幕).然后到特定目錄去讀取字型,最后對窗口和事件管理作初始化操作。GtkFB可以支持8、16、24、32bpp的framebuffer。


2.2 SWT+GtkFB圖形系統(tǒng)的優(yōu)點


由于GtkFB直接運行在FrameBufer之上,跳過X系統(tǒng),這樣省下了X Server這一部分資源,這使得在內(nèi)存消耗、運行速度上得到顯著提高。另外采用的JNI技術(shù)使得程序運行速度、事件的響應(yīng)有較高的提高,能滿足時間要求較為嚴格的實時應(yīng)用場合。


SWT 的穩(wěn)定性,關(guān)鍵是源于SWT 的設(shè)計理念。SWT最大化了操作系統(tǒng)的圖形構(gòu)件API,就是說只要操作系統(tǒng)提供了相應(yīng)圖形的構(gòu)件,那么SWT只是應(yīng)用JNI技術(shù)調(diào)用它們,只有那些操作系統(tǒng)中不提供的構(gòu)件,SWT才自己去做一個模擬的實現(xiàn)??梢钥闯鯯WT性能上的穩(wěn)定很大程度上取決于相應(yīng)操作系統(tǒng)圖形構(gòu)件的穩(wěn)定性。


SWT的API和桌面版完全相同,因而代碼可以很容易地在桌面和嵌入式設(shè)備之間移植與共享。


SWT采用了LGPL授權(quán)方式,用戶可以自由地甚至是鼓勵修改源代碼使其更加滿足用戶的需求,很容易根據(jù)用戶的需求來裁減特定的SWT+GtkFB,依據(jù)LGPL許可證,用戶需要公布修改的源代碼,但用戶不必公布自給應(yīng)用程序的源代碼。


SWT是基于Java語言開發(fā)的,具有平臺獨立性、面向?qū)ο蟆⒖梢浦?、安全等Java語言所擁有特點。用戶可以很容易的基于SWT提供的Widget(構(gòu)件)開發(fā)出滿足自己需要的Widget,而且很容易地使用這些Widget去構(gòu)建應(yīng)用程序。


3.1 前期準備


下一步就是在/home/XXX/目錄下創(chuàng)建SWT 和GTK兩個目錄并且設(shè)置環(huán)境變量。如下:


3.2 編譯和安裝Gtk+2.0


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


。/configure --prefix=$GTK_HOME


make inSTall


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


。/configure --prefix=$GTK_HOME


make install


步驟類似atk的安裝。


嵌入式Linux GUI的應(yīng)用領(lǐng)域很多,既可以用于家電市場,還可以用于商業(yè)市場、工業(yè)及自動化市場、國防市場、通訊市場等。例如,在通訊市場,手機、可視電話、機頂盒等可能成為嵌入式Linu.x的運行平臺,一個人性化的用戶界面是贏得消費者關(guān)鍵因素。因此嵌入式Linux圖形系統(tǒng)將擔任著更加重要的角色。如果你此時已經(jīng)學習了嵌入式,將會是非常幸運的一件事情。但是你想學確找不到方向沒有資源的時候,你也可以私我。相信我也可以給你提供不少的幫助.
<br font-size:14px;white-space:normal;background-color:#FFFFFF;" />未來幾年,嵌入式Linux GUI將朝以下方向發(fā)展:第一,輕型、占用資源少,不希望建立在龐大累贅的、非常消耗系統(tǒng)資源的操作系統(tǒng)和GUI之上。第二,高性能、高可靠性,特別是工業(yè)實時控制系統(tǒng),對實時性的要求非常高,并且比起嵌入式系統(tǒng)來說,對GUI的要求也更高。第三,可配置,我們必須清楚的意識到,嵌入式系統(tǒng)是一種定制設(shè)備,它們對GUI的需求各不相同,有的系統(tǒng)只要求一些圖形功能,而有些系統(tǒng)要求完備的GUI支持,因此,GUI也必須是可定制的。

關(guān)于幾種常用的嵌入式Linux GUI有哪些以及其特點是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI